(navigation image)
Home American Libraries | Canadian Libraries | Universal Library | Community Texts | Project Gutenberg | Children's Library | Biodiversity Heritage Library | Additional Collections
Search: Advanced Search
Anonymous User (login or join us)
Upload
See other formats

Full text of "Byte Magazine Volume 12 Number 11: Heuristic Algorithms"

uispiay uniii January *u, iyat$ 



Inside the IBM PCs 




440237 4 



02 



Fourth Annual Special Issue 

Assessing the PS/2s 

Micro Channel vs. NuBus 

OS/2 Prog ramming 



$3.95 US 
$4.95 Ch 
£3.65 UK 

i McGraw-Hill Publication 
0360-5280 






Turbo C, 

Turbo Basic, 

Turbo Pascal and 

Tbrbo Prolog: 

technical 

excellence 




66 Borland International's Turbo Pascal, Turbo Basic 
and Turbo Prolog automatically identify themselves, by 
virtue of their 'Turbo' forenames, as superior language 
products with a common programming environment. 
The appellation also means to many PC users a 'must 
have' language. To us Turbo C looks like a coup for 
Borland. Garry Ray, PC Week 33 



TUrbo Prolog: 

The Natural Language of 

Artificial Intelligence 



WTT hether you're a first-time 
Y\/ programmer or an expe- 
T Yrienced one, Turbo Prolog's 
natural implementation of Artifi- 
cial Intelligence soon shows you 
how to build expert systems, nat- 
ural language interfaces, custom- 
ized knowledge bases and smart 
information 
management 
systems. 




Tbrbo Prolog and TUrbo C 
work hand in hand 

Turbo Prolog® interfaces per- 
fectly with Turbo C® because 
they're both designed to work 
with each other. 

The Turbo Prolog/Turbo C 
combination means that you can 
now build powerful commercial 
applications using two of the 
most powerful languages 
available. 



TUrbo Prolog's development 
system includes: 

H' A complete Prolog compiler that 
is a variation of the Clocksin and 
Mellish Edinburgh standard 
Prolog. 

S' A fullscreen interactive editor. 

S' Support for both graphic and text 
windows. 

H' All the tools that let you build 
your own expert systems and 
AI applications with un- 
precedented ease. 



All Borland products are trademarks or registered trademarks ol Borland Interna- 
tional, Inc., or Soriand/Analylica. Inc. Other brand and product names are trade- 
marks or registered Irademarkso! their respeclive holders 
Copyrighl 1987 Borland Inlernalional 61-1 131 B 

[$39.95 

'$69.95 

** $99.95 



it An affordable, fast, and 
easy-to-use language that 
will delight the newcomer 
. . . You experienced Prolog 
hackers will likewise be 
delighted, if not astonished, 
by the features and per- 
formance of the Turbo 
Prolog development 
environment. 

Turbo Prolog offers gener- 
ally the fastest and most 
approachable implementa- 
tion of that language. 

Darryl Rubin, AI Expert J J 

How TUrbo Prolog's new Tool- 
box adds 80 powerful tools 
and 8000 lines of source code 

In keeping with Borland tradi- 
tion, we've quickly added the 
new Turbo Prolog Toolbox"* to 
Turbo Prolog. 

With 80 tools and 8000 lines 
of source code that can easily be 
incorporated into your own pro- 
grams—and 40 sample programs 
that show you how to put these 
AI tools to work — the Turbo 
Prolog Toolbox is a highly intelli- 
gent, high-performance addition. 
Only $99,951 



TUrbo Prolog Toolbox 
features include: 

H' Business graphics generation: 
boxes, circles, ellipses, bar charts, 
pie charts, scaled graphics 

H' Complete communications pack- 
age: supports XMODEM protocol 

[? File transfers from Refl ex, 'dBASE 
III,* 1-2-3,'Symphony* 

H' A unique parser generator: con- 
struct your own compiler or query 
language 

S' Sophisticated user interface design 
tools 

\3 Contains 40 example programs 

H' Easy-to-use screen editor: design 
your screen layout and I/O 

H' Calculated fields definition 

H' Over 8,000 lines of source code 
you can incorporate into your own 
programs 



TUr 

The most pow 

compi 

Our new Turbo C generates 
| fast, tight, production- 
quality code at compilation 
speeds of more than 13,000 lines 
a minute! 

It's the full-featured optimizing 
compiler everyone has been wait- 
ing for. 

Switching to TUrbo C, or 
starting with TUrbo C, you 
win both ways 

If you're already programming 
in C, switching to Turbo C will 
make you feel like you're riding a 
rocket instead of pedaling a bike. 

If you're never programmed in 
C, starting with Turbo C gives you 
an instant edge. It's easy to learn, 
easy to use, and the most efficient 
C compiler at any price. 
Only $99.95! 




66 Turbo C does look like 
What We've All Been Waiting 
For: a full-featured compiler 
that produces excellent 
code in an unbelievable 
hurry . . . moves into a class 
all its own among full- 
featured C compilers . . . 
Turbo C is indeed for the 
serious developer . . . One 
heck of a buy — at any 

price. Michael Abrash, 

Programmer's Journal jj 



)oC: NEW! 

srful optimizing 
ler ever 



Sieve benchmark 





Turbo C 


Microsoft® 
C 


Compile time 


2.4 


13.51 


Compile and 
link time 


4.1 


18.13 


Execution time 


335 


5.93 


Object code 
size 


239 


249 


Execution size 


5748 


7136 


Price 


$9935 


$450.00 



Benchmark run on an IBM PS/2 Model 60 using Turbo C version 
1.0 and the Turbo Linker version 1,0; Microsoft C version 4.0 and 
the MS overlay linker version 3.51. 



Technical Specifications 

S' Compiler: One-pass optimizing com- 
piler generating linkable object 
modules. Included is Borland's high- 
performance Turbo Linker.™ The object 
module is compatible with the PC- 
DOS linker. Supports tiny, small, com- 
pact, medium, large, and huge 
memory model libraries. Can mix 
models with near and far pointers. 
Includes floating point emulator 
(utilizes 8087/80287 if installed). 

H' Interactive Editor: The system 

includes a powerful, interactive full- 
screen text editor. If the compiler 
detects an error, the editor auto- 
matically positions the cursor approp- 
riately in the source code. 

Lm Development Environment: A power- 
ful "Make" is included so that manag- 
ing Turbo C program development is 
highly efficient. Also includes pull- 
down menus and windows. 

H' Links with relocatable object modules 
created using Borland's Turbo Prolog 
into a single program. 

B' Inline assembly code. 

S' Loop optimizations. 

Ly Register variables. 

H' ANSI C compatible. 

EK Start-up routine source code included. 

B' Both command line and integrated 
environment versions included. 

Lm License to the source code for Run- 
time Library available. 



Join more than 100,000 Turbo C 
enthusiasts. Get your copy of 
Turbo C today! 

Minimum system requirements: All products run on IBM PC, 
XT, AT, PS/2, portable and true compatibles. PC-DOS (MS-DOS) 
2.0 or later. 384K RAM minimum. Basic Telecom and Editor Tool- 
boxes require 640K. 

Borland International 

4585 Scotts Valley Drive, Scotts Valley, CA 95066 

Telephone: (408) 438-8400 Telex: 172373 



Why more than 600,000 

programmers worldwide are using 

Thrbo Pascal today 



T'he irresistible force behind 
Turbo Pascal's worldwide 
success is Borland's advanced 
technology. We created a com- 
piler so fast, that Turbo Pascal® is 
now the worldwide standard. And 
there are more tools for Turbo 
Pascal than for any other develop- 
ment environment in the world. 

You'll get everything you 
need from Ibrbo Pascal and 
its 5 Toolboxes 

Turbo Pascal and Family are 
all you'll ever need to perfect pro- 
gramming in Pascal. 

If you've never programmed 
in Pascal, you'll probably want to 
start with Turbo Pascal Tutor® 2.0,f 
and as your expertise quickly 
grows, add Toolboxes like our 

• Database Toolbox®* 

• Editor Toolbox®* 

• Graphix Toolbox®* 

• GameWorks®* 
and our newest, 

• Numerical Methods Toolbox 1 "** 



And because Turbo Pascal is the 
established worldwide standard, 
3rd party, independent non- 
Borland developers also offer an 
incredible array of programs for 
Turbo Pascal. 



ii Borland International's 
Turbo Pascal took the pro- 
gramming world by storm. A 
great compiler combined 
with a good editor at an 
astounding price, the pack- 
age quickly came to be 
called, simply, Turbo— and 
has sold more than 500,000 
copies. 

Stephen Randy Davis, PC Magazine 

Language deal of the cen- 
tury. PC Magazine f9 





For Scientists and Engineers: 
Turbo Pascal Numerical 
Methods Toolbox 

The Numerical Methods Tool- 
box is a complete collection of 
Turbo Pascal routines and pro- 
grams. Add it to your develop- 
ment system and you have the 
most comprehensive and power- 
ful numerical analysis capabil- 
ities — at your fingertips! 

The Numerical Methods Tool- 
box is a state-of-the-art mathemat- 
ical toolbox with these ten pow- 
erful features: 

Sf Zeros of a function 

Hf Interpolation 

H' Differentiation 

Ef Integration 

Of Matrix Inversion 

S' Matrix Eigenvalues 

0* Differential Equations 

Hf Least Squares 

En Fourier Transforms 

H' Graphics 

Each module comes with pro- 
cedures that can be easily adapted 
to your own program. The Tool- 
box also comes complete with 
source code. So you have total 
control of your application. 

Only $9935! 



Tbrbo Basic introduces 

its powerful new Telecom, Editor 

and Database Toolboxes 



NEW! 



Turbo Basic® is the break- 
through you've been waiting 
for. The same power we 
brought to Pascal with Turbo 
Pascal has now been applied 
to BASIC with Turbo Basic. 

Compatible with BASICA, Turbo 
Basic is the high-performance, 
high-speed BASIC you'd expect 
from Borland. 

Basically, Tiirbo Basic is 
all you need 

It's a complete development 
environment which includes an 
incredibly fast compiler, an inter- 
active editor and a trace debug- 
ging system. It outperforms all its 
rivals, and because it's compatible 
with BASICA, you probably 
already know how to use it. 

Includes a free MicroCalc 
spreadsheet complete with source 
code Only $9935! 




A technical look at Turbo Basic 

5 Full recursion supported 

Of Standard IEEE floating-point format 
Of Floating-point support, with full 
8087 (math co-processor) integra- 
tion. Software emulation if no 
8087 present 
Hf Program size limited only by avail- 
able memory (no 64K limitation) 
Hf VGA, CGA, and EGA support 
{^ Access to local, static, and global 

variables 
Q' Full integration of the compiler, 
editor, and executable program, 
with separate windows for editing, 
messages, tracing, and execution 

6 Compile, run-time, and I/O errors 
place you in the source code 
where error occurred 

(vf New long integer (32 -bit) data 

type 
Sf Full 80-bit precision 
H' Pull-down menus 
Q' Full window management 



it Borland has created 
the most powerful version 
of BASIC ever. 

Ethan Winer, PC Magazine 33 




Telecom Toolbox is a complete 
communications package which 
takes advantage of the built-in 
communications capabilities of 
BASIC— use as is or modify. 

• Pull-down menus and windows 

• XMODEM support 

• VT 100 terminal emulation 

• Captures text to disk or printer 

• PhoneBook file 

• 300, 1200, 2400 baud support 

• Supports script files 

• Fast screen I/O 

• Supports most of XTalk's 
command set 

• Manual dial and redial options 

Use Telecom Toolbox to embed 
communications capabilities into 
your own programs and/or build 
your own communications pack- 
age. Source code included for 
all Toolbox code and sample 
programs. Only $99-95! 



For the dealer nearest you or to order by phone call 

(800) 255-8008 

in CA (800) 742-1133 in Canada (800) 237-1136 




BORLAND 

INTERNATIONAL 

Circle 37 on Reader Service Card 
(Dealers: 38) 




Database Toolbox means that 
you don't have to reinvent the 
wheel each time you write new 
Turbo Basic database programs. 

H' "Trainer" shows you how B+ 
trees work. (Simply key in 
sample records and you'll see 
your index being built.) 

S' Turbo Access instantly locates, 
inserts or deletes records in a 
database— using B+ trees. 

S' Turbo Sort sorts data on single 
items or on multiple keys and 
features virtual memory 
management for sorting large 
data files. 

Source code included. 
Only $99.95! 




Editor Toolbox is all you need 
to build your own text editor or 
word processor. Includes source 
code for two sample editors. 

First Editor is a complete editor 
ready to include in your programs, 
complete with windows, block 
commands and memory-mapped 
screen routines. 

MicroStar" is a full-blown text 
editor with a complete pull-down 
menu user interface, and gives you 

• Wordwrap 

• Undo last change 

• Auto- Indent 

• Find and Find/Replace with options 

• Set left/right margins 

• Block mark, move and copy 

• Tab, insert, overstrike modes, line 
center etc. 

Includes source code. 

Only $99.95! bmwib 



MORE POINTS OF VIEW 



y 



& 



The ATI EGA WONDER - the world's fastest 

selling EGA card — now has MORE ® 
POINTS OF VIEW. 



Lower Cost. Simple Operation. 
Higher Resolutions. Any Monitor. 
Automatic Software Selection. 
Our buyers demand the best. 



Ji 



TECHNOLOGIES INC. 










800x560(1) 
752x410(1) 
• 640x480 VGA (1) 
| • 640x350 EGA 
320x200 CGA 
720x350 MDA 
720x350 Here. 
132 Columns 



IT 



ft ware Monitor 



Multisync 

• EGA Color 

• RGB 

• 25 kHz Color 

• TTL Monochrome 
^Composite Mono 

PC Portable 
Compaq Portable (2) 

• Polaroid Palette 



mill •iiusj Bci i.i] t±£ 



Time 

■ Windows 
GEM 

• AutoCAD 

• 1-2-3 

~ Symphony 
PageMaker 
Ventura 

• VTerm 
SmarTerm 
WordPerfect 

• WordStar & more 



1 efllfl ■ ■ I •] II I 111] l H III I il « I tK\ i ral II 



'16) 756-0720 Tlx: 06-966640 (ATI : 



Circle 22 on Reader Service Card 



VOLUME 12, NUMBER 12, 1987 



BYTE 



Inside the IBM PCs 



Editorial: The Meaning of SAA by G. Michael Vose 
6 

What's New 
11 

The Technical Implications of the PS/2 by G. Michael Vose 

33 

TSRs Past and Future: MS-DOS and OS/2 by Ray Duncan 

49 

The 32-bit Micro Channel by Jon Shiell 

59 

PS/2 Video Programming by Richard Wilton 

67 

Comparing IBM's Micro Channel and Apple's NuBus by Ciro Cornejo and Raymond Lee 

83 

Spying on Windows by Michael Geary 

97 

The State of Numerics by Stephen S. Fried 

115 

286/386 Protected-Mode Programming by Joel Barnum 

125 

The IBM RT Gets Connected by Jason Levitt 

133 

Application Input Drivers by Jeremy Sagan 

143 

Better Batch Files Through Assembly Language by William J. Gaff 

159 

IBM PC Family BIOS Comparison by Jon Shiell 

173 

Comparing Disk-Allocation Methods by Greg Weissman 

185 

Rating the IBM Compatibles by Robert G. Brookshire 

193 

Windows for BASIC by John W. Ross 

201 

Pipes and Filters by Paul Baker 

215 

A Timing-Independent BIOS by Howard N. Cohen and John Hanel 

219 

Three Bus Interface Designs for the PC by James R. Drummond 

225 

BOMB 

264 

Editorial Index by Company 

265 



COVER ILLUSTRATED BY ROBERf TINNEY 



m 



BYTE (ISSN 0360-5280) is published monthly with additional issues in June and October by McGraw-Hill Address editorial correspondence to: Editor, BYTE, One Phoenix Mill Lane, Peterboiough, NH 03458. Unacceptable 

Inc. Founder: James H. McGraw (1860-1948). Executive, editorial, and advertising offices: One Phoenix manuscripts will be returned if accompanied by sufficient postage. Not lesponsible for lost manuscripts or photos. 

Mill Lane, Peterborough, NH 03458, phone (603) 924-9281. Office hours: Monday through Thursday 8:30 Opinions expressed by the authors are not necessarily those of BYTE. 

AM-4:30 PM, Friday 8:30 AM-1 :00 PM, Eastern Time. Address subscriptions to BYTE Subscriptions, P.O. Box 6821 , Copyright © 1987 by McGraw-Hill Inc. All rights reserved. Trademark registered in the United States Patent and 

Piscataway, NJ 08855. Postmaster: send address changes, USPS Form 3579, undeliverable copies, and fulfillment Tiademark Office. Where necessary, permission is granted by the copyright owner fbrlibraries and others registered with 

questions to BYTE Subscriptions, P.O. Box 6821, Piscataway, NJ 08855. Stcond-class postage paid at Peterborough, the Copyright Clearance Center (CCC) to photocopy any article herein for the flat fee of $1.50 percopy of the article or 

NH 03458 and additional mailing offices. Postage paid at Winnipeg, Manitoba. Registiation number 932 1 . Subscriptions any part thereof. Correspondence and payment should be sent diractly to the CCC, 29 Congress St. , Salem, MA 01970. 

are 522 for one year, $40 for two years, and 558 for three years in the U.S. and its possessions. In Canada and Mexico, Specify ISSN 0360-5280/83. SI. 50. Copying done for other than personal or internal reference use without the 

S2S for one year, $45 for two years, S65 for three years. S69 for one year air delivery to Europe. 3 1,000 yen for one year permission of McGraw-Hill Inc. is prohibited. Requests for special permission or bulk orders should be addressed to the 

air delivery to Japan, 15,600 yen for one year surface delivery to Japan, $37 surface delivery elsewhere. Air delivery to publisher. BYTE is available in microform from University Microfilms International, 300 North Zeeb Rd. , Oept. PR, 

selected areas at additional rates upon request. Single copy price is S3 .50 in theU.S, and its possessions, $4.25 in Canada Ann Arbor, Ml 48106 or 18 Bedford Row, Dept. PR, London WCIR 4EF, England. 

and Mexico, $4.50 in Europe, and $5 elsewhere. Foreign subscriptions and sales should be remitted in U.S. funds drawn Subscription questions or problems should be addessed to: BYTE Subscriber Service, P.O. Box 6821, Piscataway, NJ 

on a U.S. bank. Please allow six to eight weeks for delivery of first issue. Printed in the United States of America. 08855. 

B Y T E 1987 Extra Edition • Inside the IBM PCs 3 



BYTE 



EIX 



EDITORIAL DIRECTOR, BYTE and BIX 

Philip Lemmons 

EXECUTIVE EDITOR, BYTE 

Frederic S. Langa 

ASSISTANT MANAGING EDITOR 

Glenn Hartwig 

CONSULTING EDITORS 

Steve Ciarcia 
Jerry Pournelle 
Ezra Shapiro 

SENIOR TECHNICAL EDITORS 

Cathryn Baskin, Reviews 
G. Michael Vose, Themes 
Gregg Williams, Features 

TECHNICAL EDITORS 

Dennis Allen 
Richard Grehan 
Ken Sheldon 
George A. Stewart 
Jane Morrill Tazelaar 
Tom Thompson 
Charles D. Weston 
Eva White 
Stanley Wszola 

ASSOCIATE TECHNICAL EDITOR 

Curtis Franklin Jr. 

COPY EDITORS 

Lauren Stickler, Copy Chief 
Judy Connors-Tenney 
Jeff Edmonds 
Nancy Hayes 
Cathy Kingery 
Margaret A. Richard 
Warren Williamson 

ASSISTANTS 

Peggy Dunham, Office Manager 

Martha Hicks 

L Ryan McCombs 

June N. Sheldon 



ADMINISTRATION 

J. BurtTotaro, Publisher 

Beverly Jackson, Publisher's Assistant 

ADVERTISING SALES 

Dennis J. Riley, Director of Sales 
Sandra Foster, Administrative Assistant 

ADVERTISING/PRODUCTION (603-924-6448) 

Lisa Wozmak, Supervisor 

Lyda Clark, Senior Account Coordinator 

Marion Carlson 

Karen Cilley 

Brian Higgins 

Linda Short 

Wai Chiu Li, Quality Control Manager 

Julie Murphree, Advertising/Production 

Coordinator 

MARKETING COMMUNICATIONS 

Horace T. Howland, Director (603-924-3424) 
Vicki Reynolds, Promotion Manager 
Lisa Jo Steiner, Marketing Assistant 
Stephanie Warnesky, Marketing Art Director 
Sharon Price, Associate Art Director 
Julie Perron, Market Research Analyst 
Cynthia Damato Sands, Reader Service 
Coordinator 



NEWS AND TECHNOLOGY 

Gene Smarte, Bureau Chief, Costa Mesa 

Jonathan Erickson, Senior Technical Editor, 

San Francisco 

Rich Malloy, Senior Technical Editor, New York 

Nicholas Baran, Associate Technical Editor, 

San Francisco 

Cindy Kiddoo, Editorial Assistant, San Francisco 

ASSOCIATE NEWS EDITORS 

Dennis Barker, Microbytes 
Anne Fischer Lent, What's New 
Stan Miastkowski, What's New 

CONTRIBUTING EDITORS 

Jonathan Amsterdam, programming projects 

Mark Dahmke, video, operating systems 

Mark Haas, at large 

Rik Jadrnicek, CAD, graphics, spreadsheets 

Robert T. Kurosaka, mathematical recreations 

Alastair J.W. Mayer, software 

Alan R. Miller, languages and engineering 

Dick Pountain, U.K. 

Roger Powell, computers and music 

Phillip Robinson, semiconductors 

Jon Shiell, high-performance systems 

ART 

Nancy Rice, Art Director 

Joseph A. Gallagher, Assistant Art Director 

Jan Muller, Art Assistant 

Alan Easton, Drafting 

PRODUCTION 

David R. Anderson, Production Director 
Denise Chartrand 
Michael J. Lonsky 
Virginia Reardon 

TYPOGRAPHY 

Sherry McCarthy, Chief Typographer 

SelindaChiquoine 

Donna Sweeney 



TELEMARKETING 

L Bradley Browne, Director 
Susan Boyd, Administrative Assistant 

PLANNING AND RESEARCH 

Michele Perron, Director 

Faith Kluntz, Copyrights Coordinator 

FINANCIAL SERVICES 

Philip L Penny, Director of Finance and Services 

Kenneth A. King, Business Manager 

Christine Lee, Assistant 

Marilyn Haigh 

Diane Henry 

Vern Rockwell 

LisaTeates 

JoAnn Walter 

CIRCULATION 

Dan McLaughlin, Director 
James Bingham, Newsstand Sales Manager 
Vicki Weston, Assistant Manager 
Claudette Carswell, Distribution Coordinator 
Karen Desroches, Direct Accounts Coordinator 
Louise Menegus, Back Issues 



EXECUTIVE EDITOR, BIX 

George Bond 

SENIOR EDITOR 

David Betz 

ASSOCIATE EDITORS 

Tony Lockwood 

Donna Osgood, San Francisco 

MICROBYTES DAILY 

Dennis Barker, Coordinator, Peterborough 

Gene Smarte, Bureau Chief, Costa Mesa 

Nicholas Baran, San Francisco 

Rick Cook, Phoenix 

Jonathan Erickson, San Francisco 

Martha Hicks, Peterborough 

Anne Fischer Lent, Peterborough 

Larry Loeb, Wallingford, CT 

Rich Malloy, New York 

Brock N. Meeks, La Mesa, CA 

Jeff Merron, Peterborough 

Stan Miastkowski, Peterborough 

Lynne Nadeau, Peterborough 

Wayne Rash Jr., Washington, DC 

GROUP MODERATORS 

David Allen, Applications 

Frank Boosman, Artificial Intelligence 

LeroyCasterline, Other 

Marc Greenfield, Programming Languages 

Jim Howard, Graphics 

Gary Kendall, Operating Systems 

Steve Krenek, Computers 

Brock N. Meeks, Telecommunications 

Barry Nance, New Technology 

Donald Osgood, Computers 

Sue Rosenberg, Other 

Jon Swanson, Chips 

BUSINESS AND MARKETING 

Doug Webster, Director (603-924-9027) 

Patricia Bausum, Secretary 

Denise A. Greene, Customer Service 

Brian Warnock, Customer Service 

Tammy Burgess, Customer Credit and Billing 

TECHNOLOGY 

Clayton Lisle, Director 

Business Systems Technology, MHIS 

Jack Reilly, Senior Business Systems Analyst 

Bob Dorobis, Business Systems Analyst 

Bill Garrison, Business Systems Analyst 



PERSONNEL 

Cheryl Hurd, Office Manager 
Patricia Burke, Personnel Coordinator 

BUILDING SERVICESrTRAFFIC 

Anthony Bennett, Building Services Manager 
Mark Monkton, Assistant 
Agnes E. Perry, Traffic Assistant 

RECEPTIONIST 

Donna Healy 



EDITORIAL AND BUSINESS OFFICE: 

One Phoenix Mill Lane, Peterborough, New Hampshire 

03458,(603)924-9281. 

West Coast Branch Offices: 425 Battery St., San Francisco, 

CA 94111, (415) 954-9718; 3001 Red Hill Ave., Building #1, 

Suite 222, Costa Mesa, CA 92626, (714) 557-6292. 

New York Branch Editorial Office: 1221 Avenue of the 

Americas, New York, NY 10020, (212)512-3175. 

BYTEnet: (617) 861-9764 (set modem at 6-1 -N or 7-1 -E; 300 

or 1 200 baud). Fax: (603) 924-7507. Telex: (603) 924-7861 . 

SUBSCRIPTION CUSTOMER SERVICE: Non-U.S. (201) 

837-1315; inside U.S. (outside N.J.) 1-800-423-8272; (inside 

N.J.) 1-800-367-0218. 



& 



Officers of McGraw-Hill Information Systems Company: President: Richard B. Miller. Executive Vice Presidents: Frederick P. Jannott, Construction Information Group; Russell 



jViik C. White, Computers and Communications Information Group; J.Thomas Ryan, Marketing and International. Senior Vice Presidents-Publishers: Laurence Altman, Electronics; 
■ ■fid David J. McGrath, Engineering News-Record. Group Vice Presidents: J. Burt Totaro, BYTE; Frank A. Shinal, Dodge; Peter B. McCuen, Communications Information. Vice 
Presidents: Robert D. Daleo, Controller; FredO. Jensen, Planning and Development; Michael J. Koeller, Human Resources; TalatM. Sadiq, Systems Planning and Technology. 

Officers of McGraw-Hill Inc.: Harold W. McGraw Jr., Chairman; Joseph L. Dionne, President and Chief Executive Officer; Robert N. Landes, Executive Vice President, General Counsel 
and Secretary; Walter D. Serwatka, Executive Vice President and Chief Financial Officer; Shel F. Asen, Senior Vice President, Manufacturing; Robert J. Bahash, Senior Vice President, 
Finance and Manufacturing; Frank D. Penglase, Senior Vice President, Treasury Operations; Ralph R. Schulz, Senior Vice President, Editorial; George R. Elsinger, Vice President, 
Circulation. 

8YTE, BVFl , and The Small Systems Journal are registered trademarks of McGraw-Hill Inc. 



Inside the IBM PCs • B Y T E 1987 Extra Edition 



PRESENTING THE DIFFERENCE BETWEEN 
FAST COMPILING AND FAST PROGRAMMING. 



For compiling speed, 
you can't do better than 
Let's C. But to really 
speed up programming 
you can't do without the 
powerful source level 
debugger, cscL 

If you want the 
power, portability and flex- 
ibility of C, start with the 
complete compiler, Let's C. 
For utilities, editor, compil- 
ing speed and fast, dense 
code, Let's C has it all. 

But to get your pro- 
grams up and running you 
need more. Because even the fastest compiler 
can't outrun bugs. You need the revolutionary C 
Source Debugger, csd. 

CUT DEVELOPMENT TIME IN HALF 
WITH reef 

csd lets you bypass the time consuming frus- 
trations of debugging-like long dumps and clunky 
assembler. With csd, you actually debug in C. You learn 
faster because you watch your program run in C. You 
finish faster because csd combines the speed of a compiler 
with the interactive advantages of an interpreter. The end 
result? Development time is sliced in half. 



r^% 




REVIEWERS ARE 
RAVING ABOUT 
LET'S C AND csd. 



LIMITED TIME 

OFFER 

FREE csd 

WITH LET'S C! 



LET'S C AND csd FEATURES 



%t* 



m 



Let's C: 

• Now compiles twice as fast 

• Integrated edit-compile cycle: edi- 
tor automatically points 

to errors 

• Includes both small and large 
memory model 

• Integrated environment or 
command line interface 

• 8087 sensing and support 

• Documentation features new 
lexicon format 

• MS-DOS object compatible 

• New make utility 

• Fast compact code plus register 
variables 

• Full Kernighan & Ritchie C and 
extensions 

• Full UNIX compatibility and 
complete libraries 

• Many powerful utilities including 
make assembler, archiver, cc one- 
step compiling, egrep, pr, tail wc 

• MicroEMACS full screen editor 
with source included 

• Supported by dozens of third 
party libraries 



• For the IBM-PC and Compatibles 

• Not copy protected 

Sieve Benchmark 

(Compile time in seconds) 

Let's C: 2.8 (On 5l2K6Mhz IBM-AT) 

Turbo C: 3.89 (As advertised) 

csd: 

• Large and small memory model 

• Debug in C source code, not 
assembler 

• Monitor variables while 
tracing program 

• Does not change program speed 
or size 

• Provides separate source, eval- 
uation, program and history 
windows 

• On-line help screens 

• Can interactively evaluate any 
C expression 

• Can execute any C function in 
your program 

• Trace back function 

• Ability to set trace points 

• Not copy protected 



&/ 



"Let's C is an inex- 
pensive, high-quality 
programming package. . . 
with all the tools you will 
need to create applications!' 
-Wffliam G.Wong, 5 Y7E, 
August 1986. 

"The performance and 
documentation of the $75 
Let's C compiler rival those 
ofC compilers for the PC 
currently being sold for 

$500... highly recommended... " 

-Marty Franz, PC TECH JOURNAL, August 1986. 

"csd is close to the ideal debugging environ- 
ment. . . a definite aid to learning C and an 
indispensable tool for program development. " 
-William G. Wong, BYTE, August 1986. 

"This is a powerful and sophisticated debugger built on a 
well-designed, 'serious' compiler. " 
-Jonathon Sachs, Micro/Systems Journal, April, 1986 

START TO FINISH, THERE'S NO 
BETTER ENVIRONMENT. 

Get started with the right C compiler and you'll have 
everything you need for development-including source 
level debugging. On top of it all, Let's C and csd are today's 
best values in professional C programming tools. And 
most reliable: Mark Williams C compilers have been sold 
with DEC, Intel and Wang computers since 1981. 

60 DAY MONEY BACK GUARANTEE 

Mark Williams gives you a full 60 days to find out just 
how good Let's C and csd really are-or your money back. 

So if you want more than a fast compiler-if you want 
your programs up and running fast, ask for Let's C and 
csd. You'll find them at your software dealer's, in the soft- 
ware department of your favorite bookstore, through the 
Express Program at over 5500 Radio Shacks or you can 
order now by calling 1-800-MWC-1700 * 

'In Illinois call, 1-312472-6659. 

Mark 

Williams 

Company 

1430 West Wrightwood, Chicago, Illinois 60614 

© 1987 Mark Williams Company 

Let's C is a registered trademark of the Mark Williams Company. 

UNIX is a trademark of Bell Labs. 




MARK WILLIAMS LET'S C AND csdONLY $75 EACH. 



Circle 128 on Reader Service Card 



BYTE 1987 Extra Edition 



Inside the IBM PCs 



INSIDE THE IBM PCs 



Editorial 



The Meaning of SAA 

First-of-the-year rumors about IBM's Sys- 
tems Application Architecture (SAA) 
hinted at a major new look for IBM soft- 
ware, possibly with the introduction of 
what turned out to be the Personal Sys- 
tem/2 machines. The new look failed to ap- 
pear in any substantive way, however, as 
only glimpses of a prototype Presentation 
Manager surfaced during the PS/2 debut. 

Finally, in early May, IBM released a 
publication called Systems Applications 
Architecture: An Overview. This booklet 
offers a peek at what SAA may offer. Un- 
fortunately, the peek is through a fog of 
banal generalities that really don't say 
what SAA is or what it is supposed to be. 
Instead, the booklet offers a vision of 
what SAA might become— when IBM 
gets around to developing it. 

After the PS/2 introduction, most peo- 
ple focused on the pros and cons of OS/2, 
and SAA receded into the shadows. I have 
an aversion to things that lurk in shadows, 
so let's look at SAA more closely. 

What Is SAA? 

The short definition of SAA is a common 
user interface, programmatic interface, 
and communications interface for three 
IBM computer lines— mainframe com- 
puters, minicomputers, and personal 
computers. The long definition adds only 
a little detail to each of the three interface 
categories. 

Based on this definition, SAA is a very 
ambitious idea. Basically, IBM wants 
programs running on three different 
hardware platforms under three different 
operating systems to look the same to 
users, programmers, and communica- 
tions channels. The accomplishment of 
this will require raising software up to yet 
another level of abstraction far removed 
from the computers the software runs on. 
Moving to another level of abstraction 
usually slows down programs and re- 
quires more memory. 

What will this software look like? For 
users, it presumably will look something 
like the Presentation Manager, which in 
turn looks like its parent, Microsoft Win- 



dows. For programmers, SAA programs 
will use standard languages like C, FOR- 
TRAN, and COBOL, plus "application 
generators" and a "procedures language," 
probably a derivative of REXX (REXX 
uses a syntax similar to English and is de- 
signed for nonprogrammers); all these lan- 
guages will call a standard set of operating- 
system and user-interface services. 

The communications interface is more 
complex, incorporating protocol support 
for the 3270 Data Stream, Document 
Content Architecture, Intelligent Printer 
Data Stream, SNA Distribution Services, 
and many other network/ session services 
and data link control systems. 

Future versions of Lotus 1-2-3 and 
dBASE will therefore look the same, 
whether you are using them on a PC or a 
370 terminal. Plus, you'll be able to send 
a file created by an application on your 
PC to a mainframe, where it can be read 
by the mainframe version of the same 
application. 

Sound Familiar? 

The grand scheme of SAA has much ap- 
peal—programs that you can feel com- 
fortable with when you change com- 
puters, portability across machines, and 
universal data. But I get skeptical when 
someone says to me, "Let's all do it this 
way; it's cool, trust me." SAA seems to 
be IBM's way of making us all conform to 
a single way of producing software. 

Of course, this idea is not new nor for- 
eign to the personal computer— the Mac- 
intosh imposes a similar "do it my way" 
philosophy. You can get away with im- 
posing a set of standard interfaces if the 
standards are good enough to be the only 
game in town. 

The best way to impose this kind of 
software conformity is to control the pro- 
gramming environment. Instead of pro- 
viding operating systems that simply per- 
form file and memory management, 
build environments with several hundred 
system calls that control everything from 
screen management to communications. 
Come to think of it, that sounds just like 
OS/2 Presentation Manager. 



We may be dealing here with a simple 
trade-off situation; you trade off your bit- 
level control of the computer in return for 
sophisticated, ready-made routines that 
make creating software easier; and all the 
software looks alike. 

Are we going to get any future Visi- 
Calcs out of such a closely controlled 
environment? 

Get There 

In rural New England, it is often a travel 
reality that "you can't get there from 
here." An obvious first question about 
SAA is, how do we get there? What are 
the intermediate destinations on the 
route? 

Unfortunately, IBM doesn't know yet. 
It promises that the conventions of SAA 
"will be published in 1987." As I write 
this in early September, only one docu- 
ment on SAA has been published. And 
this booklet is short on specifics. Fur- 
thermore, SAA will be a moving target 
right from the beginning. The overview 
booklet states, "In its initial form, SAA 
and its current IBM product implementa- 
tions offer a starting point. It is IBM's in- 
tent that both definitions and implemen- 
tations increase over time in an 
evolutionary process" (emphasis mine). 

Apparently, then, SAA will be what- 
ever IBM says it is at any given time. 

From Here 

Two things are clear about SAA. First, it 
will be a long time in coming. Second, if 
you don't work for IBM— or have to con- 
tend with the three-tiered computer ar- 
rangement SAA is really for— you can 
probably ignore it. Someday, we may 
have a "universal" computer that runs 
software that we all use and that must 
therefore always appear the same. But 
that day is still years, maybe decades, 
away. In the meantime, we've all got to 
make a living, and using or building a 
slightly better/faster/cheaper spread- 
sheet/word processor/database is still the 
best way to get to the bank from here. 

— G. Michael Vose 
Senior Technical Editor 



Inside the IBM PCs • BYTE 1987 Extra Edition 




TO YOUR PC! 

Whether your tape data comes from millions of miles away by 
satellite or from just down the hall in accounting, our "TAPE CONNEC- 
TION" can read and write W 9-track magnetic tapes using your PC! 
Over 500 million reels of magnetic tape are in use by most mainframe 
and minicomputer systems. For more than 25 years, Viz" 9-track tape 
has been the standard worldwide for storing and retrieving large data 
files. Why not let your PC and our tape system assist you in using the 
vast resources of the tape data world? 

Supporting 800 NRZI, 1600 PE and 6250 GCR, our file transfer soft- 
ware processes labeled or unlabeled tapes from most computer systems, 
including IBM OS/DOS, DEC/VAX, UNISYS, Honeywell, Burroughs, 
NCR, and HP. Large multivolume tape reels can be transferred to disk 
at rates up to 5 MB/minute! Backup and restore capabilities work well 
with Novell networks for IBM XT/ AT. With our Tape Data Extraction soft- 
ware, you can read packed fields, select and extract specific records 
and fields, such as payroll or personnel data, tax structure statistics, 
department records, as well as import data into LOTUS 1 23. You'll find 
so many applications for your particular business. You could even use 
your PC to read and display NASA's Voyager II mission data tapes, such 
as this highly enhanced image of Saturn's rings recorded from a distance 
of 8.9 million kilometers (from the tape library shown above). 

We have years of experience with IBM mainframes using magnetic 
tape, so we're qualified to assist you in implementing and supporting 
your application. Since 1981, we have supplied thousands of conver- 
sion systems throughout the world, including most of the Fortune 500 




companies. Our customer support personnel are available to answer 
your questions, free of charge. Our high volume allows us to offer low 
prices on Anritsu, Cipher, Kennedy and Qualstar equipment. Systems 
come complete and ready to use with controller card, cables, software 
and drive. Ranging from $2995 to $8995, we have a system for you, 
so call us today! 



Dealer and volume discounts available. 



See us at Comdex Las Vegas 
Booth No. 33 WIGI— 163 West Hall 



Circle 83 on Reader Service Card (Dealers: 84) 



i 



FLAGSTAFF 
ENGINEERING 



1120 Kalbab • Flagstaff, Arizona 86001 • 602-779-3341 
Compusoi-Europe • 12 Rue Rosenwald • 75015 Paris 
Tel 530.07.37 • Telex 205431 F 



A Lot Of Promises. 




iiiiiiiiiiii 



iiiiiliiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiinniiiiimiiiiiiiiiii 




^S*fe 




Take a close look at these two 
machines. At 10 MHz, operating 
at one wait state, you might 
believe IBM's® Personal System/2™ 
Model 50 is one of the fastest 
80286 computers available. Fact 
is, an Info World benchmark test 
ranks the AST Premium/286 ; s™ 
CPU performance number one. 

You might also think IBM's 
system is the first to take 
advantage of powerful multi- 
tasking operating system soft- 
ware. And you'd be wrong again. 
When we introduced the AST 
Premium/286 a year ago with 
advanced FASTslot™ architec- 
ture, we designed a home for 
Microsoft's® MS OS/2: M In fact, it 
delivers all zero wait-state mem- 
ory for MS OS/2. 

Of course, MS OS/2 may 
not be available for a while. 
Which is okay if you have an 



AST Premium/286. Built into 
every system is AST's Enhanced 
Expanded Memory (EEMS), 
allowing EEMS software such as 
Windows™ 2.0 and DESQview™ to 
multitask existing applications . . . 
today. 

So, hold on to any of your 
existing off-the-shelf application 



software. As long as ifs AT®- 
compatible, it will run on the 
AST Premium/286. 

What can the competition 
offer you today? Promises for the 
future. We can't wait that long. 
And neither should you. 

If you want more than 
promises, make a commitment 



Benchmark lest Results 
For Selected Performance Computers 



CPU measures main processor performance relative to the 6-MHz (Model 099) IBM PC AT. 
Hard disk performance is tested for sequential and random data access. 



SYSTEM (80286-BASED PCS) 

(Clock speed in MHz/No. of wait states) 



CPU 



Hard Disk 

(sequential) 



Hard Disk 

(random) 



AST Premium/286 (10/0) 



2.25 



1.41 



2.12 



IBM PC AT (6/1) 



1.00 



1.00 



1.00 



IBM PC XT-™286 (6/0) 



1.32 



1.33 



1.03 



IBM PC AT (8/1) 



1.37 



1.17 



1.40 



IBM PS/2 Model 50 (10/1) 



1.71 



1.70* 



1.19* 



IBM PS/2 Model 60 (10/1) 



1.72 



2.02 



1.67 



*With RAM cache: seq. 1.92, ran. 1.03 
Source: InfoWorld Hardware Benchmark System, as published in Info World May 1 1, 1987 



8 Inside the IBM PCs • B Y T E 1987 Extra Edition 



A Lot Of Performance. 








to the company 
that has already- 
delivered proven 
performance. As 
PC Magazine 
said when we 
received the 
Editor's Choice 
award, "The 
Premium/286 is 
without a doubt the best-looking 
and best-performing system 
with a 10 MHz rating. Its quality 
makes its price a bargain!' 

How did we come 
up with such a great 
machine? You might 
say we've been work- 
ing on the inside for 
the past six years, 
enhancing more than 
2 million PCs with our 
complete line of 
reliable, high-quality 




enhancement boards, periph- 
erals and connectivity solutions. 
Now, in addition to making 
PCs more powerful, we're making 
more powerful PCs. And 
before any AST product is ship- 
ped, it must first meet our own 
strict guidelines for industry 
compatibility. 

We could make promises 
about the future too. But, as you 
can see, and will continue to 
see in the coming months, we'd 
rather deliver. Call us today 
(714) 863-0181 to investigate 
BH the Premium/286's 
finer details. Or fill 
out the coupon to 
receive copies of 
AST Premium/286 
editorial reviews. 

AST Premium/286. 
The closer you look, 
the better we perform. 



! Yes, I want to learn more about the AST 
Premium/286. 

□ Please send me more information, 
including copies of what the critics had 
to say about the AST Premium/286. 

□ Please have an AST Representative 
call me. 

Name 

Title 

Company 

Address 



City/State/Zip 

Phone ( 1_ 



To help us better serve you, please list 
the magazine and issue date in which 
this ad appeared. 



AST Research, Inc. 2121 Alton Avenue, 
I Irvine, Ca. 92714-4992 ATTN: M.C. 

AST markets products worldwide— in Europe and the Middle East call: 
44-1-568-4350; in the Far East call: 852-0-499-9113; In Canada call: 
416-826-7514. 

AST and AST hyp tvfiistcfvd mid AST Premiuml286, MSTslot trademarks AST 
Research. Inc. IBM. and Personal Computer ATngistcrcd and Personal System/2 
and PC XT trademarks IBM Corp. Microsoft registered and MS OS/2 and 
Windows trademarks Microsoft Corp. DESOjiete trademark Quarterdeck 
Office Systems. Copyright © 1987 AST Research, Inc. All rights reserved. 




® 



R€S€flRCH INC 

BYTE 1987 Extra Edition • Inside the IBM PCs 9 



Do You Have More 

People Iki PCs? 

Kimtron Has The Affordable Multiuser PC Solutions! 




Turn your single user PC into a multiuser PC with 
Kimtron s Total Solutions. Whatever your multiuser 
needs (accounting, word processing, color graphics presenta' 
tions, etc.) we have a solution for you. Continue using the 
software that you have already invested money in buying and 
time in learning. Share expensive printers, modems and 
other peripherals. Take advantage of common data 
and files. 

Most everything you need is included: hardware, 
software, cables, and instructions on how it all fits 
together. Whether you're a techie or a novice, the 
solutions are simple to install 

Kimtron is known as the "pioneer" and "innovator" 
of the industry, so weVe got to be on top of the 
technology, To get more information and your 
FREE Multiuser PC Solution Reference Guide, 
send in your name, title, address, and this 
publication name on your company 
letterhead to: Kimtron, 1709 
Junction Ct., Bldg. #380, 
San Jose, CA 95112. 
(408) 436-6550. 
Fax: (408) 436-1380. 



(800) 828-8899 

H Kimtron 

The Multiuser Solutions Company. 

OEM and Reseller inquiries ■ — 1__ 

invited. Multiuser PC training 
seminars held in major cities 
throughout the country. 




Case in point: SAT20 runs monochrome graphics (HGA) and color graphics 
(CGA) software at a qu\c\ 8Mhz, with full filcanckecord locking. 



10 Inside the IBM PCs • B Y T E 1987 Extra Edition 



Circle 116 on Reader Service Card 



INSIDE THE IBM PCs 



What's New 



VGA-Compatible 
Monitor 

Mitsubishi' s XC- 1 429C 
is a VGA-compatible 
monitor that has a 14-inch 
(diagonal) screen. With .28- 
millimeter dot pitch and a 
fixed horizontal scanning fre- 
quency of 31.5 kilohertz, it 
features a resolution of 640 by 
480 pixels, a vertical scan- 
ning frequency of 60 or 70 
hertz, and the ability to 
display an infinite number of 
colors. 

The XC-1429C also in- 
cludes a precision in-line gun, 
a 120-volt power supply, 
and a 15-pin shrink connector 
cable. An optional tilt-and- 
swivel base is available. 
Price: $685. 

Contact: Mitsubishi Elec- 
tronics America Inc., Com- 
puter Peripherals Division, 
991 Knox St., Torrance, CA 
90502,(213)515-3993. 
Inquiry 751. 



Publish with Byline 

Ashton-Tate's Byline is 
a desktop-publishing pro- 
gram designed for business 
users with no special knowl- 
edge of graphic arts and 
typography . It features a 
WYSIWYG (what you see 
is what you get) display and a 
dB ASE merge function that 
lets you import dBASE III Plus 
databases into prestyled 
forms. 

In addition, Byline en- 
ables you to directly import 
and export MultiMate, 
WordPerfect, and WordStar 
files. You can also import 
files from Lotus 1-2-3, Sym- 
phony, and several paint 
programs. 

Five fonts, with adjust- 
able type sizes between 8 and 
144 points, are provided. 
Also included are lines and 




Mitsubishi 's new monitor is VGA-compatible. 



boxes, autoleaders and re- 
peating characters, automatic 
kerning, multiple left and 
right master pages, and auto- 
matic text flow. 

Byline runs on IBM PCs 
and compatibles with 384K 
bytes of RAM and an EGA, 
CGA, Hercules, or Hercules 
Plus graphics card. 
Price: $295. 
Contact: Ashton-Tate, 
20101 Hamilton Ave., Tor- 
rance, CA 90502-1319, 
(213) 329-8000. 
Inquiry 752. 



Multilingual, Scientific 
Word Processor 

ChiWriter "The Scholar's 
Edition," based on 
Horstmann Software Design's 
scientific word-processing 
program, is a multilingual, 
multifont word-processing 
program that lets you write left 
to right or right to left. 

ChiWriter "The Scholar's 
Edition" includes standard 
Roman, foreign (all western 



European and Scandinavian 
languages), classical-koine- 
mode Greek, and biblical- 
modern Hebrew alphabets. 
You can also design your 
own fonts. 

The program includes 
footnotes, composite charac- 
ters, user-specified docu- 
ment-saving intervals, col- 
umns, macros, overlapping 
super- and subscript levels, 
automatic pagination, head- 
ers and footers, and micro- 
spacing capabilities. 

ChiWriter "The Scholar's 
Edition" runs on IBM PCs 
and compatibles with MS-DOS 
2.0 or higher, 256K bytes 
of RAM, and a CGA. It sup- 
ports some 9-pin printers. 
Support for Hercules mono- 
chrome, the EGA, 24-pin 
printers, and Hewlett-Packard 
LaserJet printers is 
optional. 

Price: $99.95; Hercules 
monochrome, EGA, and 24- 
pin-printer support, 
$19.95; HP LaserJet support, 
$49.95. 

Contact: Paraclete Com- 
puter & Software, 1000 East 
14th St., Suite 187, Piano, 
TX 75074, (214)578-8185. 
Inquiry 753. 



QuadStar LAN 
Features Easy Setup 

Quadram's QuadStar is 
a local-area network 
package that uses phone- 
type cabling with modular con- 
nectors. It can accommo- 
date up to 50 microcomputers 
and can provide gateways to 
minicomputers and main- 
frames. 

On the hardware end of 
the system are three available 
boards that plug into IBM 
PCs, XTs, ATs, and compat- 
ibles. The QS-PH6 Person- 
al Hub plugs into a full slot in 
the network-manager com- 
puter. It provides five external 
ports for connecting to file 
servers and users, and one in- 
ternal adapter port. It also 
provides an 8K-byte RAM 
buffer and 8K bytes of diag- 
nostic tests. 

The QS-1 88 Intelligent 
Adapter Board is for use with 
file servers, which provide 
resources such as software, 
printers, and data that is 
shared by network users. It 
plugs into a full-size slot 
and includes an Intel 80188 
microprocessor running at 8 
megahertz that offloads net- 
work software processing 
from the host CPU. It also pro- 
vides a 64K-byte RAM 
buffer. 

The QS-1 00 Adapter 
Board is a half-size expansion 
board for network users. It 
provides an 8237 micropro- 
cessor that eliminates the 
need for sharing direct-mem- 
ory-access channels. 

Tapestry is QuadStar 's 
NetBIOS-compatible operating 
system. It uses icons and re- 
sides on the network manager 
or a file server. 

QuadStar conforms to the 

continued 



BYTE 1987 Extra Edition • Inside the IBM PCs 11 



WHAT'S NEW 



IEEE 802.3 lBase5 physical 
interface standard and 
transfers data at 1 megabit 
per second using the 
CSMA/CD baseband. The 
maximum distance between 
a user and the network man- 
ager is 800 feet, using 24- 
gauge telephone wire. 

The network manager 
and file server require hard 
disk drives and 640K bytes 
of RAM with at least 160K 
bytes of overhead. Network 
users require 5 12K bytes of 
RAM with a 95K-byte 
overhead. 

Quadram's QuadStarter 
Kit is for a network linking two 
microcomputers, expand- 
able to six. It includes Tapes- 
try, the QS-PH6 Personal 
Hub board for the network 
manager, the QS-100 board 
for a user, and 50 feet of 
shielded twisted-pair cable. 
Price: QuadStarter Kit, 
$1095; QS-100, $375; QS- 
188, $495; QS-PH6, $575. 
Contact: Quadram, One 
Quad Way, Norcross, GA 
30093-2919, (404) 923- 
6666. 
Inquiry 754. 



Multlconflguratlon 
NCR System 

Using split-card archi- 
tecture, NCR's PC810 is 
an IBM PC AT-compatible 
system that comes in 35 differ- 
ent configurations. The 
main processor and main mem- 
ory are on one expansion 
board, while a second board 
provides the video adapter, 
disk drive controllers, extended 
memory, and serial and 
parallel ports. The boards are 
connected by the eight-slot 
system bus. 

The heart of the basic 
PC810 configuration includes 
an 80286-10 microproces- 
sor running at 6 or 10 MHz, 
640K bytes of RAM, a 5K- 
inch 1 .2-megabyte floppy disk 
drive, a real-time clock/ 
timer with battery, and a key- 
board with 30 function keys 
and separate cursor pad. The 
PC810 also has six expan- 
sion slots for additional boards 
and an 80287 math copro- 
cessor socket. 




NCR 's AT-compatible comes in 35 different configurations. 



Among the options avail- 
able are 20-, 30-, 44-, and 70- 
megabyte hard disk drives 
and half -height 720K-byte or 
1 .44-megabyte 3 Vfc-inch 
floppy disk drives. You can 
choose EGA, CGA, mono- 
chrome, or no graphics support 
on the second board. Mem- 
ory is expandable to 1 mega- 
byte on the processor 
board; you can have up to 16 
megabytes total RAM. 

NCR DOS 3.2 and diag- 
nostic software is included. 
The PC810 measures 6.1 by 
21.2 by 16.5 inches and weighs 
about 38 pounds. 
Price: Basic configuration 
with no graphics adapter, 
$2950; with 20-megabyte 
hard disk drive, $3325; with 
30-megabyte hard disk 
drive, $4220; with CGA and 
monochrome graphics, 
$3200; with CGA and mono- 
chrome graphics and 20- 
megabyte hard disk drive, 
$3525; with CGA and 
monochrome graphics and 30- 
megabyte hard disk drive, 
$4420; with EGA, $3400; with 
EGA and 44-megabyte hard 
disk drive, $4820. 
Contact: NCR Corp., Per- 
sonal Computer Division, 
Dayton, OH 45479, (513) 
445-2078. 
Inquiry 755. 



Hard Disk Expander 
Doubles Capacity 

Konan's KXP-230 is a 
half-slot hard disk con- 
troller that the company 
claims doubles your hard disk 
capacity without using run- 
length-limited (RLL) format- 
ting. Data is stored on the 
disk in standard modified-fre- 
quency-modulation (MFM) 
format, then compressed and 
compacted. You can use the 
KXP-230 with any ST-506/ 
412-compatible hard disk 
drive up to 302 megabytes in 
size. 

When you install the 
KXP-230, an expanded disk 
called an EDISK is created 
automatically. The hard disk is 
partitioned, with one parti- 
tion containing MS-DOS and 
the KXP-230 software; the 
EDISK partition takes up the 
rest of the disk space. As an 
example, Konan says a refor- 
matted 20-megabyte hard 
disk will have a 1 -megabyte 
DOS partition and an 
EDISK with up to 38 
megabytes. 

A disk cache, disk error 
correction, and fragmentation- 
control capabilities are also 
provided. The fragmentation 
control lets you add data to 
a file in contiguous tracks, 
rather than in the next avail- 
able disk location. 
Price: KXP-230Z (for IBM 
PC or PC XT), $249; KXP- 
230ZA(forIBMPCAT), 



$299; KXP-230ZT (for Tandy 
1000), $249. 
Contact: Konan Corp., 
4720 South Ash Ave., Tempe, 
AZ 85282, (602)345-1300. 
Inquiry 756. 



Baler 3.23 

Baler 3. 23 runs 38 per- 
cent faster than earlier 
versions, according to the 
manufacturer. Baler 3.23 con- 
verts Lotus 1-2-3 work- 
sheets into stand-alone pro- 
grams that support the 
operational commands for 
Lotus, including macros, 
arrows, and user inputs, but 
not the commands for de- 
veloping a worksheet. The 
"baled" (executable) pro- 
grams, written in BASIC, run 
without Lotus. The work- 
sheet formulas in baled pro- 
grams can't be changed. 
Baler 3.23 runs on the 
IBM PC, XT, AT, and compat- 
ibles with 256K bytes of 
RAM, MS-DOS or PC-DOS 
2.0 or higher, and one 1 .2- 
megabyte floppy disk drive. (A 
hard disk drive is recom- 
mended.) Baler also requires 
Lotus 1-2-3 (versions 1A, 
2, or 2.01) or a work-alike 
spreadsheet program and 
either Microsoft's Quick- 
BASIC Compiler or IBM's 
BASIC Compiler version 2.0. 
Price: $495; Microsoft's 
QuickBASIC Compiler, $99. 
Contact: Brubaker Soft- 
ware, 8825 North County Line 
Rd. E, Lafayette, IN 47905, 
(317)564-2584. 
Inquiry 757. 



Simon and Schuster 
Speed Reading 

Speed Reading Tutor IV 
provides reading lessons 
that last about an hour each 
and are designed to be paced 
two or three days apart, 
Simon and Schuster reports. 
The first lesson tests your 
initial speed and comprehen- 
sion. The program then cus- 
tomizes the next eight lessons, 
depending on your current 

continued 



12 Inside the IBM PCs • BYTE 1987 Extra Edition 



How Eureka: The Solver 
instantly solves equations 
that used to keep you 
up all night 

The state-of-the-art answer to any of your 
scientific, engineering, financial, algebraic, 
trigonometric, or calculus equations = 
Eureka: The Solver- 



Graph Opt ions 



Edit 

Line 42 Col 1 



it ions Uindou 



Isobar ic Uork 



P dU = P(Uf 



IsoBarUork : = UJoulesl 
IsoBarUork = P*(Uf-Ui) 
Wf = Ui/2 

^= Report = 
C: REPORT. Line ay 
FinalTenp = 136.50008 ° Kelvin 



-70.894688 Joules 



Uerif y 

C:UERIFY. Line 1 

Moles = .06250000 

Oxygenrlass/rl... = .06250000 

difference = .00000000 



-98.280906 Joules 



■J-Help F2-Save F3-Load FS-Zoon F6-Next F?-Beg Blk F8-End Blk SCROLL-Size/noue 



Eureka instantly solved this Physics equation by immediately calculating how much work 
is required to compress isobarically 2 grams of Oxygen initially at STP to x h its original 
volume. In Science, Engineering, Finance and any application involving equations, Eureka 
gives you the right answer, right now! 



Eureka can solve most 
equations that you're 
likely to meet. So you 
can take a mathematical 
sabbatical. 

Most problems that can be 
expressed as linear or non- 
linear equations can be solved 
with Eureka. Eureka also han- 
dles maximization and minim- 
ization, plots functions, gener- 
ates reports, and saves you an 
enormous amount of time. 
Eureka instantly solves 
equations that would've made 
the ancient Greek mathemati- 
cians tear their hair out by 
the square roots— and it's all 
yours for only $167.00. 

Minimum system requirements: For the IBM PS/2- 

and the IBM- and Compaq- families ol personal compu- 
ters and all 100% compatibles. PC-DOS (MS-DOS') 2.0 
and later. 384K. 



Eureka; The Solver is a trademark ol Borland 

International, Inc. 

Copyright 1987 Borland International. BI-1145B interna t i o n a l 

Circle 39 on Reader Service Card (Dealers: 40) 



It's easy to use 
Eureka: The Solver 

1. Enter your equation into 
the full-screen editor 

2. Select the "Solve" 
command 

3. Look at the answer 

4. You're done 

You can then tell Eureka to 

■ Evaluate your solution 

■ Plot a graph 

■ Generate a report, then 
send the output to your 
printer, disk file or screen 

■ Or all of the above 





You can key in: 


sf 


A formula or formulas 


Sf A series of equations-— and 
solve for all variables 


Sf 


Constraints (like X has to 
be <or = 2) 


Sf A function to plot 


Sf 


Unit conversions 


Sf 


Maximization and minimi- 
zation problems 


Sf 


Interest Rate/Present Value 
calculations 


Sf 


Variables we call "What 
happens?," like "What 
happens if 1 change this 
variable to 21 and that 
variable to 27?" 




£6 Merely difficult prob- 
lems Eureka solved virtually 
instantaneously; the almost 
impossible took a few 
seconds. 

Stephen Randy Davis, — — 
PC Magazine jj 





Eureka: The Solver 




includes 


Sf A full-screen editor 


Sf 


Pull-down menus 


Sf 


Context-sensitive Help 


Sf 


On-screen calculator 


Sf Automatic 8087 math 




co-processor chip support 


sr 


Powerful financial 




functions 


Sf 


Built-in and user-defined 




math and financial 




functions 


Sf Ability to generate reports 




complete with plots and 




lists 


Sf 


Polynomial finder 


Sf 


Inequality solutions 





it Get Eureka. You won't 
regret it. Highly recommend it. 

Jerry Pournelle, Byte J J 



*0f1er includes SideKick.* SuperKey,* Turbo Lightning,* and 
Turbo Pascal*. Offer void where prohibited by law. 





BORLAND 



For the dealer nearest you 
or to order by phone 

Call (800) 255-8008 

In CA: (800) 742-1133; 
In Canada: (800) 237-1136 

B Y T E 1987 Extra Edition 





• Inside the IBM PCs 13 



WHAT'S NEW 



ability. Each lesson begins 
with a practice reading. You 
can enter the reading speed you 
want to attain, and the pro- 
gram produces an audible 
prompt telling you when to 
go on to the next page. A read- 
ing timer determines your 
reading speed. 

Following each practice 
reading, you take a comprehen- 
sion quiz. A graph of your 
speed and comprehension 
scores follows. A lesson-by- 
lesson progress chart is also 
provided. 

Speed Reading Tutor IV 
also includes Eyerobics and T- 
scope exercises to assist you 
in improving your peripheral 
vision. The Eyerobics exer- 
cise flashes different or identi- 
cal patterns on the screen, 
which become more intricate 
and farther apart when you 
respond correctly. During the 
T-scope exercise, numbers, 
phrases, and stories flash by 
one line at a time, gradually 
increasing in length and num- 
ber of lines. 

Speed Reading Tutor IV 
runs on the IBM PC, XT, AT, 
and compatibles with PC- 
DOS 1 . 1 or higher, 128K bytes 
of RAM, an 80-column 
color or monochrome monitor, 
and two floppy disk drives 
or one floppy disk drive and 
one hard disk drive. 
Price: $39.95. 
Contact: Simon and Schus- 
ter Software, One Gulf & 
Western Plaza, New York, 
NY 10023, (212) 373-8882. 
Inquiry 758. 



Digitizer Measures 
It All 

You can measure areas, 
distances, perimeters, 
lengths of curving lines, an- 
gles, slopes, and other two- 
dimensional figures with 
the Sigma-Scan 3.0 Measure- 
System. It includes a 12- by 
12-inch opaque digitizing tab- 
let and software. 

The program also enables 
you to perform point, stream, 
and incremental x,y digitiz- 
ing and object tallying. You 
can collect multiple mea- 




Sigma-Scan measures any type of two-dimensional figure. 



surements simultaneously and 
set your own measurement 
standards. 

Measurements are auto- 
matically loaded into an inter- 
nal 25-column by 65,000- 
row worksheet as they are 
collected. You can then per- 
form size, sum, mean, min, 
max, standard deviation, 
standard error, confidence in- 
tervals, t-tests, linear re- 
gressions, screen plots, and 
other statistical functions. 
You can construct nonlinear 
piecewise calibration tables, 
macros, and data transforms. 
You can also output data in 
ASCII files. 

The Sigma-Scan 3.0 
Measurement System runs 
on the IBM PC, XT, AT, and 
compatibles with MS-DOS or 
PC-DOS 2.0 or higher, 
512KbytesofRAM(640K 
bytes recommended), and 
two floppy disk drives or one 
floppy disk drive and one 
hard disk drive. It also runs on 
IBM PS/2s. It supports 
CGA, EGA, Hercules, and 
VGA cards. The software 
comes on either 3 Vi- or 5 l A- 
inch floppy disks and is not 
copy-protected. The software is 
also available separately and 
supports most digitizers. 
Price: $1195; software 
only, $495. 

Contact: Jandel Scientific, 
2656 Bridgeway, Sausalito, CA 
94965,(415)331-3022. 
Inquiry 759. 



Charley is a PC 
Genlock 

Video Charley provides 
genlock to an external 
video source to let you over- 
lay graphics onto video. The 
FCC-legal NTSC output in- 
cludes 64-color EGA support, 
programmable key colors, a 
selectable blanking source, and 
two 16-level dissolve regis- 
ters. The daughterboard sup- 
ports IBM standard soft- 
ware, including paint and 
graphics programs. You in- 
stall it on existing EGA cards 
by using the 20-pin features 
connector. Video Charley 
works with the IBM PC, 
XT, AT, and compatibles. 
Price: $749.95. 
Contact: Progressive Image 
Technology, 322 East Bidwell 
St., Folsom, CA 95630, 
(916)985-7501. 
Inquiry 760. 



C-Z80/641 80 Cross 
Compiler 

Archimedes Software 
has announced the C- 
Z80/64180C cross com- 
piler for the Zilog Z80 and Hi- 
tachi 64180 microprocessor 
families. The program includes 
a C compiler, C library 
functions, macro assembler, 
linker, and librarian. 

The compiler implements 
the ANSI-standard C enhance- 
ments, including function 
prototyping. It also supports 
the Kernighan and Ritchie 
C definition. Code generation 
for either microprocessor is 



switch-selectable, and you can 
access the 641 80' s full 
megabyte of address space. 
The compiler supports 
IEEE 32-bit single-precision 
floating-point library 
functions. 

TheC-Z80/64180C 
cross compiler also supports 
trigonometric , exponential , 
and logarithmic math func- 
tions; four memory models; 
relocatable libraries; link and 
relocate functions; and out- 
put options for Motorola 
S-format, Tektronix stan- 
dard hexadecimal, and Sym- 
bolic for symbolic emulator 
debugging. 

The compiler runs on the 
IBM PC and compatibles with 
MS-DOS 2 . 1 or higher and 
512K bytes of RAM. 
Price: $995. 

Contact: Archimedes Soft- 
ware Inc., 1728 Union St., San 
Francisco, CA 94123, (415) 
771-3303. 
Inquiry 761. 



Keep Your PC Cool 

Coldblue consists of two 
side-by-side fans attached 
to a plenum chamber. It 
ventilates your PC's card area 
at more than 25 cubic feet 
of air per minute, according to 
Mandrill. The company 
also reports that Coldblue 
lowers the internal operat- 
ing temperature of an IBM PC 
by more than 20 degrees. 
Coldblue mounts inside 
IBM PCs and XTs between the 
chassis and cover in front of 
your boards. A pin connects to 
the leftmost opening in the 
disk drive connector, letting 
the fan draw power from the 
computer. Grounding is pro- 
vided on your, system's 
speaker screw. Coldblue fea- 
tures a blue-light indicator 
visible through the front air in- 
let in the computer's cover. 
Price: $185. 

Contact: Mandrill Corp., 
P.O. Box 33848, San Antonio, 
TX 78265, (512)341-6155. 
Inquiry 762. 

continued 



14 Inside the IBM PCs • BYTE 1987 Extra Edition 



A disk each month 



PACKED with PROGRAMS 






$ 



DISCOVER UPTIME, You deserve the best from your 
computer. Have the best and save the most with U TIME. 

We make it easy and inexpensive — a disk each month. 

You deserve value. At uptime we believe in value. That's 
why each month 30,000 people like you enjoy a disk 
packed full of programs and information. 

Make life easier & get more from your computer. 

Organize your life and be more productive with 
home management and finance pro- 
grams. Have fun learning with our 
educational programs and fun 
relaxing with games and ad- 
ventures. You will find 
business, graph- 
ics, utilities 
& more! 




At least eight great programs on every disk. 

What's the opposite of "downtime"? It's UP- 
TIME, of course. Just imagine ... a disk each 
and every month, delivered right to your door 
and packed with programs for your micro. 

Subscribe now, with our introductory offer! 
Satisfaction guaranteed, or your money back. 

Make the very next disk yours! Fill in the 
coupon and return it to us, or simply 
call. We'll start your uptime subscrip- 
tion immediately. 

Call 

1-800-437-0033 

Today! 




• 



Circle 239 on Reader Service Card 

A Typical Disk Includes: 



Label Magic ■ Living Art ■ File Doctor ■ Calendar 
■ One Foundation ■ Financial Package ■ De- * 
dsion Maker ■ Tips and Hints ■ News ^^ J- 
and Views ■ Product Reviews 



WHAT'S NEW 



A Faster Word 

Microsoft Word 4.0 is 
faster, has document-re- 
trieval capabilities, macros, 
and an improved user interface. 

Speed increases are in 
scrolling, file load and save, 
cursor movement, and pagi- 
nation features. A new switch 
toggles between text and 
graphics mode. Version 4.0's 
WYSIWYG graphics mode 
takes advantage of high-resolu- 
tion graphics boards and 
monitors, such as the new VGA 
graphics modes of the IBM 
PS/2 machines. 

Version 4.0's macro lan- 
guage offers conditionals, loop- 
ing, and prompts. The 
document-management and 
-retrieval feature lets you 
assign summary sheets to each 
document, set up directo- 
ries of documents for sorting, 
and choose words within 
documents to use as search 
criteria. 

The user interface now 
has no alpha command; you 
use the Escape key to move 
in and out of editing. The cur- 
sor keys move you around 
in the menus and property 
sheets, and you can remap 
all 40 function-key combina- 
tions. You can also choose 
to display line and column 
counter numbers on-screen, 
and you can have prompt lines 
appear to explain menu 
commands. You have a choice 
of having border lines show 
or adding up to two lines on- 
screen. 

Other tools added to 
Word 4.0 include redlining, a 
spreadsheet link, style 
sheets, a 130,000-word spell- 
ing checker, and the ability 
to draw lines and paragraph 
borders. 

Microsoft also an- 
nounced a network version of 
Word 4.0. 

Word 4.0 runs on the 
IBM PC, XT, AT, and PS/2s 
with at least 320K bytes of 
RAM and two floppy disk 
drives or one floppy disk 
drive and one hard disk drive. 
Price: $450. 

Contact: Microsoft Corp., 
16011 Northeast 36th Way, 




The document-management and -retrieval feature in Word 4. 0. 



P.O. Box 97017, Redmond, 
WA 98073-9717, (206) 882- 
8080. 
Inquiry 763. 



Neural-Network 
Simulation 

SYSPRO stands for sys- 
tem simulation program, 
and it lets you simulate hier- 
archical dynamic systems, as 
well as model and simulate 
neural networks. 

SYSPRO simulates sys- 
tems that you define with four 
types of data in input files. 
Simulation run-time instruc- 
tions tell the program how 
long to run, how often to plot 
points, which points to plot, 
and other simulation-manage- 
ment instructions. The 
model parameter data estab- 
lishes values for the system 
models for each run. The ini- 
tial state of the system de- 
fines the starting point for the 
system trajectory, and the 
real-time input data causes the 
system state to change. You 
can save a complete record of 
the system state at the end 
of the run and at specified 
intervals. 

SYSPRO includes the 
simulation executive (object 
code) and the Evolve mod- 
ule, written in FORTRAN, 
which calls the root pro- 
gram of your model system. 



The Datagen module lets 
you generate input-data files 
containing signals in addi- 
tive noise. JPlot is a BASIC 
program that lets you 
display graphics of simulation 
variables on-screen or pro- 
duce printer plots. Batchkit is a 
collection of DOS batch 
files for compiling and linking 
your models into SYSPRO 
and for running laboratory 
experiments. 

SYSPRO Plus also in- 
cludes an executable load 
module, FORrRAN source 
files, and listings for BPNET, 
a back-propagation network 
model that can perform the 
nonlocal component of the 
generalized delta rule. This is 
the top level of a hier- 
archical system made up of 
Neurons. NETINP, an in- 
terface program, translates 
your network structure 
specifications and real-time in- 
puts to the system. Neuron 
is a processing element model 
that performs the state tran- 
sition function for a neuron 
with 40 learnable synapses, 
five excitatory synapses, five 
inhibitory synapses, and a 
learnable threshold level. 

SYSPRO and SYSPRO 
Plus run on IBM PCs and com- 
patibles with MS-DOS or 
PC-DOS 2. 1 or higher (256K 
bytes of RAM on an IBM 
PC or XT, 5 12K RAM on an 
AT), GWBASIC, a FOR- 
TRAN compiler, text editor, 
and math coprocessor. An 
EGA is recommended. 



Price: SYSPRO, $995; 
SYSPRO Plus, $1250. 
Contact: Martingale Re- 
search Corp., lOOAllentown 
Pkwy., Suite 211, Allen, 
TX 75002, (214) 422-4570. 
Inquiry 764. 



Update with 3V2-inch 
Drives 

Astro'sEXT^/i-inch 
floppy disk drives provide 
either 720K bytes or 1 .44 
megabytes of storage space 
with an average access time 
of 94 milliseconds. Six config- 
urations are available. 

The EXT1-PS is designed 
for the IBM PC, XT, and 
compatibles that have a 37- 
pin D-connector on the back. It 
comes with a self-power 
adapter, interface cables, and 
utility software. The EXT/ 
AT-PS is designed for IBM PC 
ATs and compatibles with- 
out external 37-pin D-connec- 
tors. It interfaces to your 
computer via a half -slot 
adapter card. The EXT/ AT 
is similar to the EXT/ AT-PS, 
except it gets its power from 
your computer. The EXTJr. is 
designed for PCjrs and also 
uses an adapter card. Two in- 
ternal drives are available. 
Price: EXT1-PS, 720K- 
byte model, $365; 1.44-mega- 
byte model, $430; EXT/ 
AT-PS, 720K-byte model, 
$395; 1.44-megabyte 
model, $460. 
Contact: Astro Systems 
Inc., 807 Aldo Ave., #106, 
SantaClara,CA 95054, 
(408) 727-5599 or 727-7626. 
Inquiry 765. 



Data Acquisition 

The Pro-Data data-ac- 
quisition program is an 
extension of PC-DOS that 
can run in the background and 
provide real-time data to 
spreadsheet programs. It lets 
you acquire analog and dig- 
ital data. 
Pro-Data maintains files 

continued 



16 Inside the IBM PCs • B Y T E 1987 Extra Edition 



Finally! A printer as 
versatile as your PC. 





By giving you extraordinarily easy access to 
all the printout options your office needs, the 
new Facit B-line matrix printers really let 
y©u exploit the full potential of your PC. 

Such as wfrgn you want to change from 
high throughput draft to perfect quality NLQ 

- just flick the rotary switch on the front 
pfnel. When you want to change font - just 
plug in a new font card. When you need to 
change from continuous forms to cut-sheets 

- the printer loads the i>ap.er for you. 
And while the beauty of the B-line concept 

improves the impression made by your PC, 
the attractive design and low noise level 
make the printers perfect for every office 

environment, tOO. Circle 78 on Reader Service Card 



Check out the facts below and 

go for a test drive at your nearest 

Facit representative. 

• B3100: 80 columns, 128 lines/minute* (250 cps) 

• B3150: 136 columns, 128 lines/minute* (250 cps) 

• B3350: 136 columns, 109 lines/minute* (200 cps), 
18-needle printhead for 100 cps NLQ 

• Rotary switch for fast print quality selection 

• Easy operation with soft set-up in national language 

• Extensive paper handling - push/pull tractor, tear-off, 
automatic loading of single sheets. Optional single or 
double bin sheetfeeder 

• Low noise key 

• Facit, IBM Proprinter and Epson FX/JX emulations 

• Parallel and serial interfaces 

• 4-color option 

• Extra fonts by means of plug-in card 

• 80col,10cpi. 

Head Office: Facit AB, S-17291 Sundbyberg. SwedenJPhone: 468 7643000. im and E P son are reg- trademarks 

USA: Facit Inc. P.O. Box 334, Merrimack. NH 03054. Phone.- (603) 424-8000 

AUSTRALIA: EAI Electronics Associates Pty Ltd., 427-3322. AUSTRIA: Ericsson Information Systems GmbH, 0222-613641. BELGIUM: Ericsson S.A., 02-243 82 U. CANADA- Facit 
Canada Inc., 416-825-8712. CYPRUS- LBM (Lillytos) Ltd 516 4634. DENMARK: Facit A/S. 02-633311 FINLAND: OY Facit, 90-420 21. FRANCE.- Facit SA, 1-4780 7117. GREAT BRITAIN: 
Facit 0634-40 20 80. GREECE: Computer Application Co. Ltd., 01-67197 22. HONGKONG.- Gilman & Co. Ltd., 5-893 00 22. ICELAND: Gisli J. Johnsen HF, 354-64 12 22. INDIA.- Forbes Forbes 
Campbell & Co. Ltd., 22-20 48 08L IRELAND: Ericsson Information Systems Ltd., 75 30 93. ITALY: Facit Data Products S.p.A., 039-63 63 31. JAPAN.- Electrolux Japan) Ltd., 03-479-7570. 
KOREA: True Trading Co. Ltd., 2-783-3855-7. THE NETHERLANDS: Facit B.V, 3480-21784. NEW ZEELAND-. Northrop Instruments and Systems. 501-801, 501-219. NORWAY: Ericsson 
Information Systems A/S, 02-35 58 20. PORTUGAL: Regisconta Sarl.l- 56 00 91. SINGAPORE: Far East Office Eqpts PteLtd., 745 82 88.S/Vl/MPerifericos S.A,4-57 90 81. SWEDEN: Ericsson 
Information Systems Sverige AB. 08-28 28 60. SWITZERLAND: Ericsson Information Systems AG, 01-821 59 21. USA: Facit Inc., (603) 424-8000. WEST GERMANY: Facit GmbH, 0211-61 090. 






WHAT'S NEW 



containing current analog input 
values, previous minute av- 
erages, previous hour averages, 
totals from analog inputs, 
and pulse counts from digital 
inputs. It also keeps a his- 
torical log of minute and hourly 
averages for the previous 
120 samples. 

Pro-Data supports up to 
10 I/O device drivers. You can 
have up to 128 analog or 
frequency inputs, 128 digital 
inputs, 128 analog outputs, 
and 128 digital outputs. 

The memory-resident 
program runs on the IBM PC, 
XT, AT, and compatibles 
with PC-DOS 2.1 and 640K 
bytes of RAM. A floppy 
disk drive and a hard disk drive 
are recommended. 
Price: $750. 

Contact: Industrial Inter- 
faces Inc., 915 Whitaker St., 
Pasadena, TX 77506-2342, 
(713)473-5112. 
Inquiry 766. 



Monitoring the 
Weather 

If those long hours in front 
of your PC keep you indoors 
more often than you'd like, 
Technology Marketing has a 
system that will let you vi- 
cariously experience the out- 
doors. PC WeatherPro en- 
ables you to monitor and store 
measurements of baromet- 
ric pressure, inside and outside 
temperature, rainfall, wind 
speed, and wind-chill tempera- 
ture. The system runs in the 
background and lets you set 
alarms that will sound if 
critical changes occur in tem- 
perature or wind speed. 

The system includes a 
half-slot card, solid-state 
barometer, electronic rain 
collector, anemometer and 
wind vane, AC power 
adapter, two temperature 
probes, and connecting 
cables. Software included pro- 
vides both graphic and digi- 
tal readings of weather mea- 
surements and calculations. 

PC WeatherPro also lets 
you produce barometric plots, 
and individual screens are 




PC WeatherPro monitors, stores, and analyzes meteor ologic data. 



provided for wind, rain, and 
temperature detail. Data is 
logged with time-and-date 
stamps. 

The system runs on all 
IBM PCs and compatibles; the 
software takes up 64K bytes 
of RAM. 
Price: $575. 

Contact: Technology Mar- 
keting Group Ltd., 4000 Kruse 
Way Place, Building 2, 
Suite 120, Lake Oswego, OR 
97035, (503) 635-3966. 
Inquiry 767. 



Golden Retriever Pup 

Golden Retriever Pup 
uses pattern recognition 
to scan files and locate in- 
formation in much the same 
way as the original Golden 
Retriever, but Pup searches 
floppy disks only. It does 
not distinguish between upper- 
case and lowercase letters, 
and it can match by comparing 
the spelling and ordering of 
words within a phrase. It 
doesn't interpret meanings 
and doesn't recognize 
synonyms. 

During the search, the 
program uses a proprietary 
search algorithm and calcu- 
lates a score from to 100 for 
all the potential text patterns 
in the files, with 100 being an 
exact match. You define a 
minimum score, and if a pat- 
tern equals or exceeds the 
score, Pup reports the match 



and saves the pattern. An- 
other feature is the ability to 
search only the files you 
want searched. The program 
offers wild-card-character, 
file-date, and subdirectory 
options. 

On the IBM PC XT, 
Golden Retriever Pup can 
search through 2000 char- 
acters per second, according to 
S K Data. 

The program requires an 
IBM PC, XT, AT, or com- 
patible with MS-DOS or 
PC-DOS 2.0 or higher. It is 
menu-driven and not copy- 
protected. 
Price: $99. 

Contact: SK Data Inc., 
P.O. Box 413, Burlington, MA 
01803,(617)229-8909. 
Inquiry 768. 



A Braille Interface 
Terminal 

The Braille Interface 
Terminal consists of a 20- 
cell braille display that 
serves as a window to the com- 
puter screen, a braille key- 
board, a joystick, a full-slot 
card, and software that pro- 
vides commands to maneuver 
the window around the 
screen. 

The Braille Interface Ter- 
minal runs on the IBM PC, 
XT, AT, and compatibles. You 
can enter data and commands 



into the computer from 
either the braille keyboard or 
the PC's keyboard. With 
the joystick, you can maneuver 
the window, moving down 
and across lines and columns. 
You can also maneuver the 
window with the keyboard, 
either tracking the cursor as 
it moves around the screen or 
monitoring a 20-character 
window while entering data. 

Review commands en- 
able you to move the window to 
any screen location or jump 
to the beginning or end of a 
line, or to the top or bottom 
of the screen. A Find function 
is also provided. You can 
send control commands to the 
computer from the braille 
keyboard. 

Other features include 
WordPerfect commands and 
macros that let you perform 
most functions from the braille 
keyboard, and a menu- 
manager program that assists 
you in managing your hard 
disk drive from a braille menu. 
Price: $4195. 
Contact: Telesensory Sys- 
tems Inc. , 455 North Bernardo 
Ave., Mountain View, CA 
94043, (800) 227-8418 or 
(415) 960-0920; in California, 
(800) 874-9009. 
Inquiry 769. 



The Sensual 
Keyboard 

Northgate takes behavior- 
ist philosophy to the 
typist. According to company 
president Arthur B. Lazere, 
Northgate' s C/T (which stands 
for click/tactile) keyboards 
give you a "positive entry sen- 
sation, " which results in 
faster typing speeds and fewer 
errors. The keyboards come 
in 84- and 101 -key versions 
and work with the IBM PC, 
XT, AT, and compatibles. 

The 101 -key keyboard in- 
cludes 12 function keys ar- 
ranged across the top in the 
standard 101-style format. 
Both keyboards feature 
lighted indicators for the Caps 
Lock and Num Lock keys, 
and enlarged Shift, Enter, 
Control, Alt, and Back- 
space keys. 

continued 



18 Inside the IBM PCs • BYTE 1987 Extra Edition 



2 new monitors 
for the System/2™ 

2 good to be true. 



Some people shy away from tech- 
nological change. But at Amdek®, we look 
upon change as an opportunity. 

And now that there's a new generation 
of PCs, we have the opporb jnity to intro- 
duce you to 2 newmonitors from Amdek- 
the 732 color and 432 monochrome. 

The meticulous details. 

From the beautifully styled cabinet to 
the flicker-free screen, these new monitors 
are unmistakably Amdek 

Text so sharp, you'll think your news- 
paper is blurry by comparison Graphics so 
colorful, you'll have a tough time trying to 
think of a hue you can't incorporate. 

And because the Amdek 732 and 432 
are compatible with IBJVPs new Personal 
System/2™ Video Graphics Array (VGA) 
and MultiColor Graphics Array (MCGA), 
the image of all your programs will look 
better than you've ever imagined. 



The 732 allows you to choose from a 
palette of over 256,000 colors -up to 256 
colors at once. And the text switch delivers 
clear single color text for word processing. 

The black and white of it 

For the ultimate in monochrome, the 
432 features a large 14-inch flat surface 
screen that projects visually larger black type 
against a high-contrast white phosphor 
background The impression is more like ink 
on paper. 

Combine these features with our non- 
glare screen and tilt/swivel stand, and you'll 
see that Amdek has thought of everything 

Then compare our monitor price 
against other monitors compatible with the 
System/2. 

We think you'll enjoy that benefit, 2. 

si/)MDEK 

Clearly the finest in monitors. 



■H 
MM.. 



1 90 1 Zanker Road, San Jose, C A 95 1 1 2 Phone: 800/PC-AMDEK (800/722-6335) FAX: 408/436-8 1 87 

Circle 11 on Reader Service Card 




mmwn* 



E 







IEEE 



r^ : . 



IBM is a registered trademark of International Business Machines Corp. Personal System/2 is a trademark of International Business Machines Corp. 



WHAT'S NEW 



Price: 84-key version, $79; 
101-key version, $99. 
Contact: Northgate Com- 
puter Systems, 2905 Northwest 
Blvd., Suite 250, Plymouth, 
MN 55441, (800) 328-8907 or 
(612)553-0631. 
Inquiry 770. 



MagniView's 
Overhead Interface 

MagniView 200 is a 
12.6- by 12.5- by 1.1- 
inch monochrome LCD 
display with an 8.3- by 6.2- 
inch screen size and 640- by 
240-bit resolution. The Vh- 
pound display fits onto a 
standard overhead projector, 
and the 4-3 aspect ratio of 
the screen (identical to that 
of a computer monitor) pro- 
vides distortion-free image 
projection of text and graph- 
ics. A built-in fan, infrared fil- 
ter, and heat-tolerant liquid 
crystals are designed for heat- 
tolerant operation. Top- 
mounted, on-board controls let 
you differentiate between 
like colors when translating 
them to a monochrome 
display. 

MagniView 200 inter- 
faces with the IBM PC, 
XT, AT, and compatibles with 
CGA graphics, and with Apple 
lis and compatibles. The 
unit plugs into the RGB or 
composite video output. In- 
cluded is Presentation Partner 
software for IBM PCs and 
compatibles, which lets you 
capture screen displays 
from applications software. 
Options are a "Y" video 
cable for displays to a second 
monitor, and a carrying 
case. 

Price: $1195; video cable, 
$45; carrying case, $65. 
Contact: Dukane Corp., 
2900 Dukane Dr., St. Charles, 
IL 60174, (800)634-2800; 
in Illinois, (312) 584-2300. 
Inquiry 771. 



Music Editing, Scoring, 
and Arranging 

RolandCorp's M.E.S. A. 
(Music Editor, Scorer, 
and Arranger) has song, score, 




MagniView 200 for overhead projectors uses a 4-3 aspect ratio. 



and print modes that let you 
record, edit, and print music. 

You can enter music 
using a MIDI instrument, 
mouse, or keyboard. 
M.E.S. A. 's song mode in- 
cludes a 65,000-note capac- 
ity, eight tracks, program- 
mable tempo changes per 
beat, timing offsets of any beat 
by any number of clock 
pulses, and looping function by 
track or song. You can 
name or mark tracks; apply 
MIDI event filters during or 
after recording; and edit notes, 
beats, bars, phrases, and 
tracks. A graphics display as- 
sists you in cutting and 
pasting. 

Score mode displays 
phrases in standard musical no- 
tation on your screen. You 
can create complete composi- 
tions and individual notes, 
and insert, delete, and modify 
MIDI events. You can also 
prepare scores for printing and 
insert text, phrase marks, 
triplet brackets, clefs, and 
other musical symbols. By 
using the mouse, you can also 
draw special symbols or 
markings on the screen. 

In the print mode, you 
can view a page of music as it 
will appear when printed. 
With a Hercules monochrome 
or EGA display, you can 
view up to eight staves simulta- 
neously; with a CGA, you 
can view five. You cut and 



paste individual measures 
and print to dot-matrix and 
laser printers and plotters. 

M.E.S. A. runs on the 
IBM PC, XT, AT, and compat- 
ibles with MS-DOS 2.0 or 
higher; 512K bytes of RAM 
(640K bytes recom- 
mended); an EGA, CGA, or 
Hercules graphics cards; 
and a parallel printer port. A 
Microsoft or Mouse Sys- 
tems mouse is optional. Also 
required are a Roland 
MPU-401 MIDI Processing 
Unit and Roland MIF-IPC 
interface card. The package 
supports all MIDI instru- 
ments, Roland reports. 
Price: $695. 
Contact: RolandCorp 
U.S., 7200 Dominion Circle, 
Los Angeles, CA 90040- 
3647,(213)685-5141. 
Inquiry 772. 



Slideworks Graphics 

Slideworks lets you 
create pie charts, bar and 
line graphs, text charts, pic- 
tures, and maps. The package 
includes a color palette of 
64 hues and a library of 24 pre- 
defined images. Printer 
drivers support HP LaserJet 
II, IBM Color Jetprinter, 
and Epson dot-matrix printers. 

Template guides, pre- 
formatted charts, and recom- 
mended colors are designed 
to speed chart formatting. Cus- 
tomizing tools include a 
draw feature for boxes, circles, 



ellipses, and lines; a choice 
of seven typefaces; support for 
an international character 
set; a choice of foreign lan- 
guages; horizontal, vertical, 
and video frame templates; and 
editing features. The pro- 
gram supports most spread- 
sheet and word-processing 
programs. 

Slideworks runs on the 
IBM PC, XT, AT, and compat- 
ibles with 5 12K bytes of 
RAM, MS-DOS or PC-DOS 
2.1 or higher, and two flop- 
py disk drives or one floppy 
disk drive and one hard disk 
drive. The program supports 
EGA and CGA graphics; it 
does not support Hercules 
graphics. 
Price: $249. 
Contact: Management 
Graphics Inc . , 1 450 Lodestar 
Rd., Unit 1, Downs view, 
Ontario M3J 3C1, Canada, 
(416) 638-8877. 
Inquiry 773. 



Thermistor Analyzer 

ThermiCalc assists you 
in determining the resis- 
tance-temperature param- 
eters of Fenwal Electronics* 
thermistors. You can de- 
velop complete curves in 1- 
degree increments for the 
product through its operating 
range, or develop specific 
resistance-temperature rela- 
tions for a particular 
application. 

You can select from sev- 
eral different types of therm- 
istors. Basic formulas and 
descriptions of types of therm- 
istor products are available 
in the program's glossary. 

ThermiCalc runs on the 
IBM PC, XT, AT, and compat- 
ibles with IBM BASICA or 
equivalent, 256K bytes of 
RAM, and two floppy disk 
drives. 

Price: $38.50. 
Contact: Fenwal Electron- 
ics, 450 Fortune Blvd., 
Milford, MA 01757, (617) 
478-5255. 
Inquiry 774. 

continued 



20 Inside the IBM PCs • BYTE 1987 Extra Edition 



Tandy Computers: 
Because there is 
no better value! 



The New Tandy 1000 TX 




The most affordable 
80286*powered 
PC compatible 
made in America. 



Our new Tandy 1000 TX features an 8 MHz 
80286 microprocessor, for far greater processing 
power than ordinary PCs. This brings true 16-bit 
technology, previously found only in "AT®" class 
machines, to an affordable PC. 

The Tandy 1000 TX is outfitted with a new 
720K 3 l k f ' disk drive, and there's room to add a 
second internal 3 l li" or 5 l k" disk drive. 

The 1000 TX includes features you'd expect to 
pay extra for, like monochrome and color graphics 
adapters, a printer adapter, joystick adapter and an 
RS-232C serial port— ideal for connecting a mouse. 
We also include MS-DOS® 3.2 ,GW-B ASIC- even 
our new Personal DeskMate™ 2 software. 

The Tandy 1000 TX comes with 640K RAM 
and five card slots for expansion. Add more 
memory, an internal modem, a hard disk 
x card— or an adapter for connecting the 
\ 1000 TX to your workgroup 
environment. 

¥00 ^ r Come to Radio Shack and 
see the new Tandy 1000 TX 
today. (25-1600) 



Send me a new 
1988 computer 
catalog. 



Mail To: Radio Shack 
Dent. 88-A-1192 
300 One Tandy Center 
Fort Worth, TX 76102 



Name. 



Company. 
Address _ 
City 



. State . 



Phone. 



1 
I 
I 



Radio /hack 



AT/Reg. TM IBM Corp. MS-DOS/Reg. TM Microsoft Corp. 



Circle 193 on Reader Service Card 



The Technology Store' 

A DIVISION OF TANDY CORPORATION 

B Y T E 1 987 Extra Edition • Inside the IBM PCs 2 1 



WHAT'S NEW 



No-slot 80386 
Upgrade 

The 386Eagle is an 
80386-based add-in board 
designed to "sidesaddle" 
the floppy/hard disk controller 
of an IBM PC AT or com- 
patible. It's also available for 
the IBM PS/2 Models 50 
and 60. The board measures 
4.4 by 5.5 inches and in- 
cludes a 16-MHz 80386 pro- 
cessor, 512Kbytesof 
RAM, and a 32-bit data bus. 

On an AT or compatible, 
the board mounts onto the disk 
controller's G-35 connector 
and plugs into the socket of 
your system's 80286 chip 
via a conversion cable. Accord- 
ing to Application Engi- 
neering, the 386Eagle can in- 
crease system performance 
by as much as four times. 

An 80-pin connector lets 
you add up to 4 megabytes of 
expansion memory. An op- 
tional 80287 math coprocessor 
is also available. 
Price: $1695. 

Contact: Application Engi- 
neering and Associates Inc., 
3420 East Shea Blvd., Suite 
227, Phoenix, AZ 85028, 
(602) 996-7762. 
Inquiry 775. 



Control Your VCR 
via Your PC 

The VCR Controller 
Card from Innovative Tech 
Works lets you control up to 
two professional-style video 
tape recorders— those re- 
corders equipped to use the 
SMPTE RS-422 serial com- 
munications protocol. 

The card takes up a full 
slot in your IBM PC or com- 
patible. You can control 
most front-panel functions of 
your VCR and develop your 
own control programs. A soft- 
ware-development driver 
works with most programming 
languages. You can perform 
single-frame edits and edit con- 
trol sequences using the 
card. 

The card is designed for 
use with most paint and anima- 
tion programs and can con- 
trol most devices that use the 
RS-422 protocol, including 



R; 


mmrnm 


m 

ituntn 

•{'••••TV. 

yV-r-r:: 

isVfttfti 
pWtmi 

1 :•: 

tfWWJ 


1 


»*tt— rrmttt^ij 






1 


l lEBmnm 


sfimimmblfc \{\\ ig 


*<■». 



The 386Eagle upgrades your AT without using a slot. 



recently released special effects 

devices and character 

generators. 

Price: Single-channel 

model, $795; dual-channel 

model, $995. 

Contact: Innovative Tech 

Works, 405 Battleground Ave., 

Suite 200, Greensboro, NC 

27401,(919)370-0855. 

Inquiry 776. 



Prolog Compiler 

The Cogent Prolog 
Compiler offers a full im- 
plementation of the stan- 
dard Edinburgh Prolog lan- 
guage with over 150 
predefined procedures. It pro- 
vides support for real, 
string, and database reference 
types, and the development 
environment includes the 
Prolog Compiler and Inter- 
preter, as well as a window- 
based debugger, help sub- 
system, and dynamic loader. 
The compiler also offers 
user-programmable window- 
ing, screen control, and 
error trapping and handling. 

Sample Prolog expert- 
system, language-processing, 
and decision-support pro- 
grams are included. The run- 
time version requires an 
IBM PC or compatible with at 
least 256K bytes of RAM. 
To run the compiler, you need 
384K bytes of RAM. 
Price: $200. 

Contact: Cogent Software 
Ltd., 21 William J. Heights, 
Framingham, MA 1 70 1 , 
(617) 875-6553. 
Inquiry 777. 



Menu At Work 

Menu At Work is a DOS 
shell that lets you access 
DOS commands and hard 
disk directories and subdirec- 
tories via menus. 

Menu At Work can orga- 
nize a hard disk file menu auto- 
matically, or you can create 
custom menus. The program 
provides password protec- 
tion and presents DOS com- 
mands in plain-English 
menus. Menu At Work also lets 
you create reports on sys- 
tem usage. 

Menu At Work runs on 
the IBM PC, XT, AT, and 
compatibles with MS-DOS 
or PC-DOS 2. lor higher, 
256K bytes of RAM, and a 
hard disk drive. 
Price: $195. 

Contact: Management Sci- 
ence Associates Inc., 6565 
Penn Ave. at Fifth, Pitts- 
burgh, PA 15206-4490, 
(412) 362-2000. 
Inquiry 778. 



3-D Graphics with 
Lotus 1-2-3 

Intex Solutions' 3-D 
Graphics is a Lotus 1-2-3 
add-in that lets you create 
three-dimensional bars, joined 
bars, financial bars, lines, 
and surface charts using Lotus 
1-2-3 data. 

3-D Graphics enables 
you to select axes automatically 
or manually, add titles and 
axis labels, and produce either 
color or black-and-white 
graphics. You can represent 
100-by-100 data arrays for 
surface plots, and 10-by-100 



arrays for line and bar 
charts. 

The program also lets 
you rotate the graph to view it 
at different angles, color 
contour, and view hidden lines 
on surface plots. You can 
save your graphics to disk as a 
picture file, then print or 
edit them with PrintGraph, 
Freelance, or Manuscript. 

3-D Graphics runs on 
IBM PCs and compatibles with 
PC-DOS or MS-DOS 2.0 
or higher; 256K bytes of 
RAM; a CGA, EGA, or 
Hercules board; and Lotus 
1-2-3 version 2.0 or higher. 
Price: $79.95. 
Contact: Intex Solutions 
Inc., 568 Washington St., 
Wellesley, MA 02181, 
(617)431-1063. 
Inquiry 779. 



Zoom's $199 
2400-bps Modem 

Zoom/Modem HC 2400 
is a 2400-bit-per-second, 
half -card modem for the 
IBM PC, AT, XT, and compat- 
ibles. The modem supports 
the Hayes AT command set as 
well as Bell 103A, Bell 
212A, andCCITTv.22bis 
protocols. Features include 
auto-answering, auto-dialing, 
dial-tone detection, an on- 
board speaker, a second jack 
for a telephone set, adaptive 
equalization, on-board power- 
up, and analog loop-back 
diagnostics. 

Zoom Telephonies says 
that the unit's high-speed 
16450 UART is designed to 
ensure compatibility with the 
contemporary crop of 
80286- and 80386-based sys- 
tems that operate at 8 MHz 
and above. 

The Zoom/Modem HC 
2400 is FCC-registered and has 
a two-year warranty. It's 
shipped with ProComm com- 
munications software, 
which includes terminal 
emulation; XMODEM, 
YMODEM, and Kermit com- 
munications protocols; 
script files; and a host mode. 
continued 



22 Inside the IBM PCs • BYTE 1987 Extra Edition 



Magnavox Multimode Display 
means VGA compatibility. . . 




Actual un-rctouched 
photograph 



L \ 



... in addition to auto-frequency selection for CGA, EGA, PGA, and 
AT&T graphics. Plus we offer you a top-notch color image, full input 
selection, and line level audio for interactive applications. 

For additional information on the Magnavox Multimode or our full line of 
computer display products, call 1-800-223-4432, in TN call 615-521-1601. 



MAGNAVOX 

Smart. Very smart. 



© 1987 N.A.P. Consumer Electronics Corp, A North American Philips Company 
IBM is a registered trademark of IBM Corp. AT&T is a registered trademark of AT&T. 



Circle 125 on Reader Service Card 

Multimode Display suggested retail 5899. 



Circle 19 on Reader Service Card 



IBM-AT SPEEDUP 

THE HIGH PERFORMANCE 

Speed Injector hom Ariel 

YCTTY* For the CPU: The XCELX 286/287 variable speed contro1 

2V^~£V allows you to fine tune your CPU speed between 6 and 13 
2 a e / 2 a 7 MHz. Most 6 MHz ATs reach 9.8 MHz (maximum speed is 
based on system configuration). Some Features: Automatic speed timing for the speed 
limiting ROM BIOS A Mode Switch for switching between the Standard and 
Variable set speed A Full hardware reset a Easy plug-in installation. 

For the 80287: Independent speed controls for the 80287. Selectable from the 
Standard 2/3 CPU speed, 8, 10, 12, 14, 16 MHz actual 80287 speed. The fastest 
80287 speeds available. 

XCELX Models: 

The Desktop Version - Variable CPU control, Mode switch and hardware Reset 

switch are all conveniently located on an easy-to-use desk-top 

controller (#XA03-R) $159.95 

The Rear Mount Version - CPU controls and Reset switch mounts on the rear 
of the AT (#XA01-N) $ 99.95 

The Speed Utilities^ - Software for XCELX that will A Display exact XCELX 
speeds for fine tuning of CPU speed A Speedup hard disk A Correct floppy disk 

"Drive Not Ready." access A Speedup keyboard (#SU01-A) $ 39.95 

MIL Spec Crystals - The famous Ariel Crystals for old ROM ATs. Choose from 
(Crystal/CPU speed) 16/8, 17/8.5, 18/9, 19/9.5, 20/10 
(#CA1-16/17/18/19/20) $ 19.95 

Call About FAST RAM, 80287 and 80286 

Order Line: 

800-641-3322 Ext. 1110 

Direct Line: 

^COMPUTER CORPORATION 201-788-9002 

Post Office Box 866 a Flemington, New Jersey a 08822 




WHAT'S NEW 



DATA ENTRY EMULATOR 

HEADS-DOWN DATA ENTRY WITH TWO-PASS VERIFICATION. THE 
SYSTEM IS POWERFUL, EASY-TO-USE AND SUPPLIES YOUR 
OFFICE WITH THE LATEST IN DATA ENTRY SOFTWARE. 



ON LINE 
DATA ENTRY 




3270 EMULATION 



5251 

5291 

5292 

3179 

3180 (*) 

3196 

3197 

(*) Offers a OE style 
keyboard. 



PC/XT/AT AND PS/2 
■OR COMPATIBLES 



OFF-LINE DATA ENTRY (*) 
STAND ALONE PACKAGE OR 
NETWORK VERSION 



PC's $395 

IBM S/36 from $995 

FREE 30 DAY TRIAL PERIOD 



COMPUTER KEYES 

THE DATA ENTRY PEOPLE 

(206) 776-6443 







21929 MAKAH ROAD 
WOODWAY. WA 98020 



Price: $199. 
Contact: Zoom Tele- 
phonics Inc., 207 South St., 
Boston, MA 02111, 
(617)423-1072. 
Inquiry 780. 



Complete 386-Based 
System 

Hertz Computer Corpo- 
ration has introduced the 
Hertz AT386 Plus Model 
80, a fully loaded 80386-based 
system. Included in the 16- 
MHz system is 2.5 megabytes 
of high-speed 32-bit RAM, 
an 80-megabyte hard disk drive 
with an average access time 
of 28 ms, a 60-megabyte tape- 
backup unit, a 2400-bps in- 
ternal modem with com- 
munications software, a 
combination MDA/CGA/EGA 
card, a color monitor, and 
MS-DOS 3.2. 

The system comes with 
your choice of any combination 
of two of the following: a 
5 ^-inch 360K-byte disk drive, 
a 1 .2-megabyte 5 Vi-inch 
disk drive, and a 720K-byte 
3Vfe-inch disk drive. The 
system has single parallel and 
serial ports, a 101 -key key- 
board, a 195-watt power sup- 
ply, and eight full-length 
expansion slots, including two 
32-bit, four 16-bit, and two 
8-bit. There's also a socket for 
an optional 80287 or 80387 
math coprocessor. 
Price: $6995. 
Contact: Hertz Computer 
Corp., 325 Fifth Ave., New 
York, NY 10016, 
(212)684-4141. 
Inquiry 781. 



Reorganize Your 
Hard Disk 

DS Optimize lets you re- 
organize your hard disk 
so that physical files reside 
in one location. According to 
Design Software, the pro- 
gram can optimize a badly 
fragmented 10-megabyte 
hard disk in 8 minutes. 

DS Optimize lets you re- 
organize your entire hard disk, 
selected directories, or files 
within a directory. You can 
also place the two directo- 



ries you read from and write to 
most often in certain areas 
on the disk to reduce access 
time. 

The program features 
diagrams that display your 
hierarchical directory tree 
structure and which disk clus- 
ters are used by a directory 
or file. It also features 
copy, erase, and locate 
functions, and it enables you to 
move files between sub- 
directories and create and 
remove subdirectories. 

DS Optimize runs on 
IBM PCs and compatibles with 
MS-DOS or PC-DOS 2.0 
or higher and 256K bytes of 
RAM. 

Price: $69.95. 
Contact: Design Software 
Inc., 1275 West Roosevelt Rd., 
West Chicago, IL 60185, 
(312)231-4540. 
Inquiry 782. 



Financial Reporting 

Javelin Plus combines 
spreadsheet, database- 
management, and graphics 
capabilities to let you perform 
financial analysis. The pro- 
gram consists of a central in- 
formation base surrounded 
by 10 ways of entering, ma- 
nipulating, and reporting 
data. It is designed for working 
with both numeric and non- 
numeric information that must 
be included as data in an 
analytic model. 

Javelin Plus lets you enter 
text or dates anywhere you can 
enter a number. You can 
use dates in formulas, calculate 
days between dates, com- 
pare dates, and find the start 
and end dates of variables. 
You can select or sort records 
in a list as part of your 
model and summarize database 
information over time. 

The program also in- 
cludes snap-in building blocks. 
These enable you to per- 
form what-if analyses, design 
and implement data-entry 
forms, and perform multiple- 
regression and histogram 
analysis. 

Other new features in- 
clude a range restriction that 
lets macro-driven models 

continued 



24 Inside the IBM PCs 



Circle 54 on Reader Service Card 



Print Master 

lets people share printers 




Get the most out of your 
expensive resources— your 
people, your computers and your 
printers— with Print Master by 
BayTech. Not only does it let your 
people and computers share all 
of your printers, its buffer keeps 
them working instead of waiting. 

Easy to set up, 
easy to use 

Initial setup is menu- 
prompted and allows you to 
configure Print Master to your 
application. You decide which 
ports are input and which are 
output. You also set such 
functions as baud rates, 
handshaking, timeout, how 
you select a printer, etc. 

After setup, you simply 
cable Print Master between your 
computers and printers, and 
you're ready to go. BayTech's 
Memory Resident Program lets 
your PC users select printers via 
function keys that correspond to 
a menu window. 





Print Master keeps 
everything running 

All users can send data 
simultaneously to Print Master's 
dynamically allocated buffer, 
keeping your people and com- 
puters working. This first-in- 
first-out buffer also sends data 
to all printers simultaneously 
to keep them running at full 
capacity. The buffer size? A big 
512K that's expandable to 
one megabyte. 

Eleven models with 
serial and parallel 

An advantage of Print 
Master is its flexibility: Any 
port can be a computer port 
or a printer port. Choose from 
eleven models with different 
combinations of serial and 
parallel ports. Print Master 
internally converts serial to 
parallel and vice versa on 
combination serial/parallel 
models. Six ports, $795, Eight 
ports, $895. Ten ports, $995. 



Non-buffered models from $339. 
GSA pricing available. 

Want details? 

Contact your dealer or 
Bay Technical Associates for 
information about Print Master 
and BayTech's complete line of 
data communications products, 
proudly made in the U.S.A. 




BayTech 



Bay Technical Associates, Inc. 

Data Communications Products Division 

200 N. Second St., P.O. Box 387 

Bay Saint Louis, Mississippi 39520 

Telex 910-333-1618 BAYTECH 

Phone 601-467-8231 or 

800-523-2702 



Circle 31 on Reader Service Card 



BYTE 1987 Extra Edition • Inside the IBM PCs 25 



Introducing 
multi-channel 
communications 
boaixis400% 
faster than 
what you're # 
probably using 




Introducing the 
DIGIBO ARD COM/Xi Series front-end processor. 
Intelligent multi-channel communications boards 
400% faster than the industry standard. 

Like our popular COM/X Series, they provide 
users of PC/XT/AT-compatible computers with four 
or eight individually addressable serial ports. But 
with the new COM/Xi series we've added: 

• an 80188 co-processor operating at 10 MHz 

• 256K of dual-ported RAM + 16KofROM,all 
accessible to user/ programmers for application 
and security software development 

• a modular design that allows us to custom- 
tailor I/O to individual customer requirements. 
On-board intelligence means more speed for 

multi-user operating systems and multi-channel 
data collection and dissemination. 

And makes the new DIGIBO ARD COM/Xi 
Series a more intelligent choice for you. 



WHAT'S NEW 



Digil 



= 



Plugging you into Tomorrow. 

Call 1-800-344-4273. In Minnesota, (612) 922-8055. 



specify a data-entry area on a 
worksheet and prevent un- 
authorized modification of 
other parts of the work- 
sheet, and a /File Run com- 
mand that lets you incor- 
porate DOS commands or 
other programs into appli- 
cations processing. You can 
automatically import all 
variables from another model, 
and read DIF, SYLK, 
WKS,WKl,WRK,and 
comma-delimited files. 
Graph types added include 
high/low/close, mixed line 
and bar charts, and XY plots 
with up to seven variables. 
Javelin Plus also supports the 
Apple LaserWriter and 
other PostScript printers. 

Javelin Plus runs on IBM 
PCs and compatibles with MS- 
DOS or PC-DOS 2.0 or 
higher, 512K bytes of RAM, 
and two disk drives. The 
program comes on 5 V4-inch 
floppy disks, but SVfc-inch 
disks are available for $30 
extra. It is not copy- 
protected. 
Price: $249. 

Contact: Javelin Software 
Corp., One Kendall Square, 
Bldg. 200, Cambridge, MA 
02139, (617) 494-1400. 
Inquiry 783. 



Turn Your PC Into a 
Logic Analyzer 

You can use Heathkit's 
IC-1001 Logic Analyzer 
to study circuits with se- 
quential or combinational 
logic. It connects to your 
IBM PC or compatible through 
an RS-232C serial port, and 
you can use it in circuits oper- 
ating at up to 10 MHz. 

TheIC-1001isal6-bit 
analyzer that provides 16 data 
lines for checking a 16-bit- 
wide data bus or 16 separate 
logic test points. A clock in- 
put and two clock qualifier in- 
puts are also provided. It's 
compatible with both TTL and 
5-volt CMOS logic. 

The accompanying soft- 
ware lets you display state and 
timing, including hexa- 
decimal/octal and ASCII 
equivalents. You can also 
perform checksum operations 
with bit selection. 



You can configure the 
IC-1001 to capture a specific 
sequence of pulses and use 
a single or repeating trigger 
with selectable time delay to 
capture a window of pulses. A 
delay mode enables you to 
acquire data up to 50,000 
pulses after trigger; a non- 
delay mode lets you view 
events 2000 pulses before 
trigger. 

The IC-1001 can com- 
municate between 300 and 
19,200 bps. Oscilloscope 
trigger outputs are provided. 
The product measures 1 .75 
by 9.25 by 8.5 inches. 
Price: $269. 

Contact: Heath Co. , Dept. 
150-935, P.O. Box 1288, Ben- 
ton Harbor, MI 49022, 
(616) 982-3200. 
Inquiry 784. 



PS/2-Compatible 
Light Pen 

FTG Data Systems' 
PXL-350/4isalightpen 
for the IBM PS/2 Model 30. 
The package includes a con- 
troller board, software, and 
an adapter cable. 

The company's light pen 
was originally developed for 
use with CGA and EGA 
adapters to deliver pixel-level 
resolution and hardware in- 
terrupts for Microsoft Win- 
dows. The PXL-350/4 is 
also compatible with DCA's 
E78Plus and other 3270 
emulation products. 
Price: $189. 
Contact: FTG Data Sys- 
tems, 10801 Dale St., Suite 
J-2, Stanton, CA 90680, 
(800) 962-3900; in California, 
(714)995-3900. 
Inquiry 785. 



Interactive Waveform 
Analysis 

Interactive Waveform 
Analysis is a program de- 
signed to assist physical- 
and life-science teachers and 
researchers in studying the 
properties of periodic functions 
and conducting experiments 
with waveforms. 
You begin by entering be- 

continued 



26 Inside the IBM PCs 



Circle 73 on Reader Service Card 




1 




Turtle Souped 



Real programmers don't use dBASE. Or do they? 
We're finding that some very swift programmers are using it to 

write some very fast applications, 



Nantucket 



and are completing their 
projects much more quickly 
But they cheat. 
They use our Clipper™ 
compiler to combine dBASE™ 
with C and assembler. 
With dBASE used like 
pseudo-code, they can then quickly create 
prototypes that actually run. 
Then, with dBASE doing the high-level database functions, 
they use our Clipper compiler to link in C or assembly language 
modules from their own bag of tricks. 

And they're finding that they're linking in less than they 
expected because Clipper compiled code runs so fast and 
because of Clipper's built-in enhancements. 

Clipper includes easy networking that provides file and 
recoid locking the way it should be done. 

Fast screens that can be treated as memory variables and 
eliminate the need for direct screen writes and all that tortuous 
heap management code. 

Box commands that make 
windowing a breeze. And more. 

So if you'd like to use your time 
more productively check us out: 
Nantucket Corporation, 
12555 W Jefferson Boulevard, 
Los Angeles, CA 90066. 

Or if you're on deadline, call 
(213) 390-7923 today 

Clipper could get you out of 
the soup. 




© Nantucket Corporation 1987 Clipper is a trademark of Nantucket Corporation; dBASE isn't. In Europe: Nantucket Corporation (Europe! 2 Bluccoals Avenue, Fore Street. Hertford, Herts SG 14 1 PB Telephone 0992 554621. 



Circle 146 on Reader Service Card (Dealers: 147) 



BYTE 1987 Extra Edition • Inside the IBM PCs 27 



Circle 26 on Reader Service Card 




WHAT'S NEW 



Dealer inquiries welcome. 
Call today for more information: (408) 438-6861 



ciutofax 



, Corporation 
4113A Scotts Valley Drive, Scotts Valley, CA 95066. 



r Keyswap 4.0 Applications Manager: 

The cure for the common software headache. 

The problem with most applications programs is that they don't work 
your way. Keyswap finishes the job of the software developers by letting 
you customize all the programs you now use quickly and easily. It saves 
time and reduces errors by adding: 

Powerful windows that permit rapid 
movement between applications and 
automatic cut-and-paste from one to 
another. 
| Context-sensitive prompts and sub- 
menus to guide new and infrequent 
users. 

Groups of single-key macros that 
activate automatically only at the 
appropriate points within an application. 
Simple question-and-answer dialogs 
that replace complex command strings. 
Best of all, the Keyswap 4.0 Applications Manager is only $99.95 
single-user (not copy protected), or $149.95 for the Office-Pak™ 
which includes 5 extra run-time copies. Order now and you'll also 
get a large library of pretested macros, a year's free subscription to 
MACRO UPDATE and access to Maverick's Applications Hot Line. 

LIFETIME WARRANTY! 

If the Keyswap 4.0 Applications Manager™ ever fails to meet your needs, 
simply return it in good condition for a full refund. 

falAVERiCK SOFTWARE 





Building better software and backing it better 

To order your copy, or for more information, call: 

1-800-248-3838 (in MA, 617-662-0856) 

Maverick Software, Inc. • 533 Main St. • Melrose, MA 02176 



© 




MS** 



tween 50 and 500 data items. 
The program then performs 
a Fourier analysis and produces 
a trigonometric series con- 
sisting of a constant term plus 
N/2 harmonic terms. You 
can view the analysis graphi- 
cally in both time and fre- 
quency domains, in addition to 
tabular form. You can save 
results to disk and perform 
screen dumps to your printer. 

After the initial analysis, 
you can compute derivatives of 
the original and all derived 
functions and display their 
waveforms and spectra. 

The program also in- 
cludes a module that lets you 
perform cross-correlations 
between series pairs with vari- 
ous lags and leads. 

Interactive Waveform 
Analysis runs on IBM PCs and 
compatibles with PC-DOS 
or MS-DOS 2.0 or higher, 
256K bytes of RAM, two 
disk drives, and a graphics 
display. It is available on both 
3 Vi- and 5 l A-'mch floppy disks. 
Price: $59.95. 
Contact: Mathematical 
Software Co., P.O.Box 
12349, El Cajon, CA 
92022,(619)940-0343. 
Inquiry 786. 



W.O.R.K.AtHome 



B 



ritannica Software's 
'W.O.R.K. At Home is an 
integrated program that in- 
cludes word-processing, data- 
base, spreadsheet, and re- 
port modules. 

The word-processing 
module lets you create docu- 
ments up to 10,000 charac- 
ters long with 128K bytes of up 
to 24,000 with 256K bytes 
or more. The database module 
supports up to 20 fields, 
with a maximum field length of 
33 characters. You can have 
up to 360 records per disk. The 
spreadsheet measures 26 



columns by 99 rows. 

W.O.R.K. At Home runs 
on IBM PCs and compatibles 
with MS-DOS 2.0 or higher 
and 128K bytes of RAM. 
Price: $59.95. 

Contact: Britannica Software, 
185 Berry St. , San Francisco, 
CA 94107, (415) 546-1866. 
Inquiry 787. 



24-pin Combination 
Printer/Plotter 

JDL's850GL+and 
850 EWS 24-pin printer/ 
plotters can print in 14 
colors and support automatic 
paper feeding for A- 
through C-size paper and 
vellum in engineering and 
architectural formats. They 
print lines of 16-inch letter- 
quality text. 

TheJDL-850GL+is 
compatible with A- through 
E-size HP plotters. A 1- 
megabyte plot spooler and five 
standard fonts are provided. 
The GL+ prints 360 characters 
per second in draft mode 
and 144 cps in letter-quality 
mode. It's compatible with 
the Diablo 630, IBM 5182 
Color Graphics, and Epson 
printers. Options include font 
cards, additional printer 
emulations, and a dual-bin 
sheet feeder. 

TheJDL-850EWSisthe 
same as the GL+ but is not 
compatible with the HP 
Graphics Language. 

The EWS comes with 
either a Centronics parallel or 
RS-232C serial interface; 
theGL+ has both. They 
measure 25.5 by 16.8 by 
7.5 inches. 

Price: JDL-850GL+, 
$3845; JDL-850 EWS, $2495. 
Contact: JDL Inc., 2801 
TownsgateRd., Suite 104, 
Westlake Village, CA 
91361,(805)495-3451. 
Inquiry 788. 



SEND US YOUR NEW PRODUCT RELEASE 
If you want us to consider your product for publication, send us full 
information about it, including its price, ship date, and an address 
and telephone number where readers can get further information. 
Send to New Products Editor, BYTE, One Phoenix Mill Lane, 
Peterborough, NH 03458. Information contained in these items is 
based on manufacturers ' written statements and 7 or telephone inter- 
views with BYTE reporters. BYTE does not represent itself has hav- 
ing formally reviewed each product mentioned. 



28 Inside the IBM PCs 



Circle 129 on Reader Service Card 



eybored? 




W& 



+* Lm 



w 



Try our Turbo 1017 
Your computer will never be the same. 

hy? Because there's a good chance that the keyboard that came with your computer has about as much feeling as a sponge. Not so with 
the DataDesk (made in the U.S.) Ilirbo 101 Enhanced keyboard. You get a keyboard that feels good to the touch. And its exclusive tactile- 
feedback keys let you type faster— with fewer mistakes than ever before— regardless of what PC/XT*/AT e or compatible you are using. 



And that's not all. The "Selectric" typewriter layout of the Ilirbo 101 is 
ideal for word processing. The separate cursor and numeric pads end the 
need to toggle num-lock, dramatically simplifying all spreadsheet and data- 
entry operations. The T\irbo 101 incorporates all the features of the new IBM 
Keyboard Standard plus many improvements carefully designed to improve 
your hands-on computing performance. 

Better yet, it's never been easier to increase your productivity. There's nothing complicated to learn— lust plug in the T\irbo 101 and start typing! 
You'll get a new feeling about your computer. (You'll notice the difference from the very first keystroke). 

Don't wait to get your hands on the DataDesk Ilirbo 101 Enhanced keyboard. Right now, you'll receive your choice of Borland's Tlirbo Lightning® 
or SuperKey® software absolutely free (a $99 value!) with each Ilirbo 101. And to be sure you're completely satisfied, you get a 30-day, money-back 
guarantee and a two year warranty. There's no better time to see how good you and your PC can feel with our T\irbo 101. 




Here's how the critics feel about the f rurbo 101: 



if I have absolutely no hesitation in 
recommending the DataDesk Turbo 101. 
Jeriy Poumelle 
Byte Magazine J J 

if DataDesk International has designed 
a sturdy and handsome keyboard that has 
a tactile response ... it is the hardware bar- 
gain of the year. 

Charles Humble 
Oregonian J J 

'wilh purchase ol Turbo 101 enhanced keyboard 

All DataDesk International products are registered trademarks or Iradernarks ol Data- 
Desk Inter national, Inc. Other brand and product names are trademarks or registered 
trademarks ol their respective holders Copyright 1987 DataDesk international. 

MADE IN USA 
Circle 71 on Reader Service Card (Dealers: 72) 



mm For ingenuity of design and sheer 
dollar-value, the Turbo 101 isveryhardto 
beat. 



Curt Suplee 
Washington Post J J 



mm I recently had a chance to use Word 
3.0 and DataDesk's 101 Key keyboard. The 
result was superb. 

8/7/ Machrone 

PC Magazine J J 

To order by phone call: 

(800) 826-5398 

In CA (800) 592-9602 



Act now and get Borland's Tbrbo 
Lightning or SuperKey FREE with 
your Turbo 101 Keyboard. All for only: 

$149.95* 

Please send me TUrbo 101 Enhanced 

Keyboards at $149.95 each plus $10 each ship- 
ping and handling. California residents must 
also include $9.75 each sales tax. Include with 
each keyboard: 

T\irbo Lightning SuperKey 

Name 

Company 

Street Address 

City 

Phone 



-State Zip. 



_ Computer type . 



Method of payment: Check Visa MasterCard 

Credit Card No: Exp 

AT&T & PCjr compatible version available for $174.95: Macintosh compatible 
version with 101 KEYS" for $169.95 

datadesk 

INTERNATIONAL 
760 Haskell Avenue Van Nuys, CA 91406 



htoduciiig Microsoft Bookshelf 



Meet the most useful, exponentially 
powerful writing tool since the word processor. 

It's as if E B. White, Samuel Johnson, Pierre 
Roget and John Bartlett created the definitive 
writer's reference. A Style-Guide-Dictionary- 
Thesaurus-Quotebook- Almanac-Fact Finder- 
Speller-Editor-Form Maker-ZIP Code® 




Directory-Business Information Sourcer. 

Ten of the most helpful reference and writing 
tools ever. Together. In one electronic bookshelf 
Camped in your computer. Microseconds away. 

The CD thatis music to your PC. 

Microsoft® Bookshelf™ CD ROM Reference 
Library applies audio compact disc laser tech- 
nology to your PC. You get electronic access to 
key references. Instantly. Logically. 

It's easy to learn, easy to use Because there 
aren't any humps to get over. You're up to 
speed in no time. 



The ultimate 




Just hit ALT-Shift. Bookshelf's at your 
command. Use the keyboard or mouse to get 
a definition. Find a quote. Check a fact Edit 
a phrase. Spell relief. Zip to a ZIP Code. More. 

In just seconds, Bookshelf searches the 
source, calls the information to 
the screen, ^bu can paste it right 
into your document Next? 

Say goodbye to physically 
jumping from book to book 
There's no lifting. No thumbing. 
Agonizing. Stopping. 
Starting. No derailing 
your train of thought 
Nothing comes between 
you and your writing. 



Microsoft Bookshelf. 




It rooms with your PC. 

Bookshelf is memory-resident It works from 
within your word processor. So it's always 
there A keystroke away. 
You'll need a CD ROM drive, so Bookshelf 
is available with the Amdek 
LASERDRTVE. Or you can use 
it with your own drive. 

If this sounds like the best 
of all possible worlds, call 
(800) 426-9400 for more infor- 
mation or the name of the dealer 
nearest you. 

Microsoft* Bookshelf" 




Reference sources used in .Microsoft Bookshelf contain text-only 
material— no graplijcs that cannot be reproduced with IBM* 
extended character set 

In Washington State and Alaska, call (206) 882-8088. In Canada, 
call (416) 673-7638. 

Microsoft is a registered trademark and Bookshelf is a trademark 
of Microsoft Corporation. IBM is a registered trademark or 
International Business Machines Corporation. ZIP Code is a 
registered trademark of the United States Postal Service, and 
Microsoft is a non-exclusive licensee ofthe United States l^ostal 
Service. 



THE 

ADVANTAGE 




ENHANCED 




Kay pro Corporation — electronics 
innovator since 1952 — has made 
a good thing even better. The 
KAYPRO 286i Model C now 
features a 40-MB hard drive and 
the 101-key AT-style keyboard. 
With the latest standard feature 
enhancements, the KAYPRO 286i 
is the smartest choice in advanced 
computer technology. 

Advanced. 

The heart of the KAYPRO 286i 
is the 80286 microprocessor — 
with a processing rate of 10 MHz 
and a 640-kilobyte RAM. The 
perfect match for today's high 
productivity software. 

And Enhanced. 

The KAYPRO 286i Model C has 



a 1.2-MB floppy disk drive, plus a 
hard disk with 40 MB of storage. 
The KAYPRO 286i AT-style 
keyboard features the new 
101-key layout with separate cursor 
control, numeric keypad, and 
12 programmable function keys. 

Perhaps the nicest surprise about 
the KAYPRO 286UC is the 
suggested retail price of $2995. 

You won't find distinctive 
metal construction, 10-MHz 
processing, and free name- 
brand software that includes 
WordStar Professional Release 4 

in any other AT- type computer. 
Other company's extras are 
Kaypro standard features. 



COMPUTERS 
The Future's Built In 



CARD 

123 46 67H 



Lease-Link 

Kaypro's Commercial Leasing See US at COfltBGH Las Vegas BOOth No. 1260 Kaypro's Revolving Charge Plan 

The KAYPRO 286i Model C features.. . 




c 1 1 1 ' ifcfccQco ' ntfaai "• ia 



tS'ifii 



wmm 




80286, 10-MHz An internal hard Enhanced 101-key A 640-KB RAM, 

Microprocessor. disk drive with 40 MB IBM PC /AT-style expandable to 

of storage. keyboard with 15 MB. 

security keylock. 



Bundled software 
includes WordStar 
Professional Release 4. 



trademarks: 28oi, Kaypro corporation; IBM, ai international Business »^ *^ 

Machines; WordStar Professional Release 4, MicroPro International. wfjr* F° r the Kaypro Dealer near yOU, Call 1-800-4K AYPRO- 



32 Inside the IBM PCs • BYTE 1987 Extra Edition 



Circle 112 on Reader Service Card (Dealers: 113) 



INSIDE THE IBM PCs 



The importance of IBM's latest microcomputer offering 



The Technical Implications 

of the PS/2 



G. Michael Vose 



I s there any real technical sub- 
stance to IBM's new Personal 
System/2 lineup of machines? 
Or is IBM simply peddling 
yesterday's technology aug- 
mented by new graphics and 
an as-yet-unseen, complex, 
untested new operating 
system? 

These questions form the 
context for the analyses on the 
following pages. I've assem- 
bled the thoughts of staff edi- 
tors here at BYTE and com- 
bined them with a sampling of 
opinions offered by people 
from the microcomputer in- 
dustry whose ideas we at 
BYTE respect. 

The introduction of the 
PS/2 generated thousands of 
column-inches of type given 
over to endless discussions of 
what the PS/2 means to clone 
makers, what it portends for 
software vendors, and what 
may happen to a soon-to-be- 
orphaned generation of ma- 
chines. Our intent here, how- 
ever, is to focus on the tech- 
nology of the PS/2 computers 
to ascertain whether this tech- 
nology will make significant 
changes in the future of per- 
sonal computing on an IBM 
platform. These collected 
ideas may help shed some 
light on what implications the PS/2 gen- 
eration holds in store. 

The Big Picture 

Overall, the observations that follow 
paint a very positive picture of the direc- 
tion staked out by IBM's newest product 
line. The two most significant technol- 
ogies include the Micro Channel bus and 
the OS/2 operating system. Closer looks 
at both of these technologies, as well as 
the PS/2's new VGA graphics, are of- 




fered elsewhere in this issue. [Editor's 
note: See 'The 32-bit Micro Channel " by 
Jon Shiell, "TSRs Past and Future: MS- 
DOS and OS/2" by Ray Duncan, and 
"PS/2 Video Programming " by Richard 
Wilton.] 

Several general observations can be 
made about the PS/2 family's technol- 
ogy. First, Intel's 80x86 architecture is 
well-understood, even though it's dis- 
liked by many people. This understand- 
ing makes possible chip sets and applica- 



tion-specific integrated 
circuits (ASICs) for building 
machines more cheaply, as 
well as reasonable develop- 
ment tools for writing soft- 
ware. Therefore, it is safe to 
say that an Intel microproces- 
sor-based line of computers is 
fairly mature. 

Maturity may not be con- 
sidered a technical advantage 
in science, where creativity in 
problem-solving is more im- 
portant. But in the venue of 
the average microcomputer 
user, maturity means com- 
patibility and reliability. 

In fact, some people think 
that software has replaced 
hardware as the standard tar- 
get for building new com- 
puters. John Roach, chief ex- 
ecutive officer of Tandy 
Corp., recently noted, "Most 
people don't care much about 
hardware anymore. They just 
want to know if their favorite 
software will run on a ma- 
chine." If this attitude is 
widely shared, then the hard- 
ware of the PS/2 machines 
will satisfy many people— at 
least until the OS/2 finally 
arrives. 

Compatibility implies stan- 
dards, and as. a standard, the 
PS/2 machines' technology 
seems solid. But whether IBM allows it to 
be adopted by other manufacturers con- 
cerns BYTE'S editor in chief, Philip 
Lemmons, who says, "With the intro- 
duction of the PS/2 machines, IBM has 
begun to compete in the personal com- 

continued 

G. Michael Vose is a BYTE senior techni- 
cal editor. He can be reached at BYTE, 
One Phoenix Mill Lane, Peterborough, 
NH 03458. 



Illustration: Robert Wisnewski © 1987 



BYTE 1987 Extra Edition • Inside the IBM PCs 33 



TECHNICAL IMPLICATIONS OF THE PS/2 



puter arena on the basis of technology. 
This development is welcome because 
the previous limitations of the de facto 
IBM standard were painfully obvious, es- 
pecially in systems software. The new 
PS/2 'standard' offers numerous im- 
provements: The Micro Channel is a bet- 
ter bus than the PC and AT buses, and it 
provides a full standard for 32-bit buses. 
The VGA graphics standard improves on 
the EGA. The IBM monitors for the PS/2 
series take a new approach that will ulti- 
mately deliver superior performance at 
lower prices. IBM is using 3% -inch flop- 



py disks that offer more convenience, ca- 
pacity, and reliability than 5 V4 -inch flop- 
py disks. And OS/2, the new system 
software jointly developed by Microsoft 
and IBM, will offer advances such as true 
multitasking and a graphic user interface. 
"Yet a cloud hangs over all this out- 
standing new technology. Like other 
companies that have invested in the devel- 
opment of new technology, IBM is as- 
serting proprietary rights in its work. 
When most companies do this in most 
product areas, we expect and accept it. 
When one company has the special role 



"Mace Utilities 4.0 


Best Data Recovery 


There is Gets Better" 


^^___- --. 


PC Magazine 


/far* ^—^ 


March 31, 1987 




. . And Better! 


Mflak VERSION 


%kZjI8fes 


fmiio 


RECOVERY FEATURES 


T-R0D FEATURES 


DIAGNOSE checks any disk for 


Fast UnFRAGMENT quickly reorgan- 


errors. 


izes segmented files for speedier 


REMEDY fixes errors, automatically. 


disk performance. 


UnDELETE recovers deleted files easily, 


VCACHE buffers data reads and 


automatically. 


writes in regular, expanded or 


UnFORMAT recovers from an 


extended memory for dramatic disk 


accidental format of your hard disk 


speedup. 


even when MACE was not installed. 


SORTD Directory sort. 


e*J Floppy UnFORMAT recovers from 


S0ZD Directory path optimizer. 


accidental format of a floppy disk. 


VSCREEN Screen speedup. 


^FORMAT-F floppy formatter. Replaces 


VKETTE Diskette caching for floppies. 


DOS FORMAT. Includes 'RESURRECT 


^dbFIX 


option, to revitalize weary disks. 


Repairs and recovers damaged or 


^FORMAT-H hard disk formatter 


lost DBase files, automatically. 


replaces DOS FORMAT. Guaranteed 


Advanced performance at the 


safe. 


same good price: $99 


To Order Call 


Paul Mace 


800-523-0258 


SOFTWARE 


503-488-0224 


400 Williamson Way, Ashland, OR 97520 



of setting the de facto standard, however, 
the aggressive assertion of proprietary 
rights prevents the widespread adoption 
of the new standard and delays the broad 
distribution of new technology. 

"The personal computer industry has 
waited for years for IBM to advance the 
standard, and now, depending on IBM's 
moves, may be unable to participate in 
the advancement. If so, the rest of the in- 
dustry and the broad population of com- 
puter users still need another standard for 
which to build and buy products— a stan- 
dard at least as good as the one embodied 
in the PS/2 series." 

Whether or not the PS/2 machines set 
a standard, BYTE senior technical editor 
Gregg Williams finds noteworthiness in 
the technology of the machines for a vari- 
ety of reasons: 

"The PS/2 design is noteworthy more 
because it was done by IBM than because 
of its inherent worth. The design is good, 
but not great; it opens large areas of fu- 
ture growth (and present incompatibil- 
ity); and it determines what a large por- 
tion of the microcomputer industry, both 
companies and individuals, will and will 
not do. 

"IBM's use of the Intel 80286 proces- 
sor in the PS/2 Models 50 and 60 will 
have a strong fragmenting effect on the 
IBM PC market (in which I'll include the 
PC and PS/2 computers and all clones). 
Imagine what life would be like if IBM 
had introduced only 80386 machines: An 
80386-based operating system, with its 
protected 8086 mode, would have al- 
lowed multiple existing MS-DOS appli- 
cations to run in the same machine. This 
means that most of your existing IBM PC 
programs would do multitasking on the 
new machine, and software developers 
wouldn't have to agonize over whether to 
write MS-DOS- or OS/2-compatible 
programs. 

"IBM's exclusive use of 3 Vfc-inch flop- 
py disks puts the final nail in the coffin of 
5 l A -inch floppy disks, a process that was 
begun by Hewlett-Packard, Apple, Com- 
modore-Amiga, and Atari. On the other 
hand though, IBM's insistence that the 
mouse pointing device be optional may 
hurt the company. If less than 75 percent 
of the installed user base buys mice, de- 
velopers will think twice before writing 
programs that use them heavily— and that 
will limit the range and power of applica- 
tions that can (and will) be written. With 
a huge number of PS/2 machines being 
sold before the graphic interface is avail- 
able, the fate of the mouse as part of the 
standard PS/2 configuration is very 
uncertain. 

"I'm not sure how many people will 
pay $395 for OS/2 (IBM may bring down 

continued 



34 Inside the IBM PCs • B Y T E 1987 Extra Edition 



Circle 165 on Reader Service Card 



TRY ORACLE'S $1295 SQL DBMS 

FOR ONLY $199 TODAY. 

OR ORDER VAPORWARE. 



If you're looking forward 
to OS/2 and the next gen- 
eration of PC database 
management systems to 
enable you to build larger, 
higher-quality PC applica- 
tions, you'll be interested 
to know that: 

• AshtonTate has announc- 1 
ed its intention to replace 
its outdated database tech- 
nology with a SQL DBMS 
under OS/2, and 

• IBM has announced its 
intention to offer SQL for ^m 
OS/2 in its Extended Edition. 

All you have to do is wait. Wait 
for OS/2 and SQL. Wait until mid- 
1988... or later! Meantime you 
keep developing with soon-to-be 
obsolete dBASE™ technology. 

But you don't have to wait for 
SQL on the PC. 

Oracle has it now. And you 
don't have to wait for OS/2 to run 
programs larger than 640K. The 
ORACLE® DBMS allows you to run 
OS/2-size programs under today's 
MS-DOS? M 

ORACLE is the number-one sell- 

J Dear AshtonTate, , 

I 20101 Hamilton Avenue 
Torrance, CA 90502 

I Since you've announced your inten- 
■ tions to go to SQL, I really don't feel ' 
like developing obsolete applications 
in dBASE. I have every confidence your I 




ing DBMS on both minicomputers 
and mainframes. If you try PC 
ORACLE, we think you'll make us 
number-one on PCs, too. That's why 
we're making you this special offer. 

We've sold thousands of copies 
of PC ORACLE for $1295. But now, 
for a limited time, we will send 
you the same, full-function version 
of ORACLE for only $199 * 

That's right. Only $199 for a PC 
SQL DBMS that is identical to the 
ORACLE that runs on minicom- 
puters and mainframes. $199 for 
the only PC DBMS that lets you 



i 

I bug-free. Send me what you've got, 
when you get it. 



first attempt will be full-featured and 



I 



I 



Company 



City 



Dear IBM, 



write larger-than-640K, 
OS/2-size programs and 
run them under today's 
MS-DOS. 

ORACLE makes it easy 
to write large, high- 
quality applications using 
industry-standard SQL. 
Applications that run 
faster. Applications that 
are easier to use and 
have more capability. 
Multi-user, networked 
applications. Applica- 
tions that can be devel- 
oped on MS-DOS today, and then 
run unchanged on OS/2, mini- 
computers and mainframes. 

So stop writing dead-end dBASE 
code today. And stop writing 
cramped, limited-to-less-than-640K 
applications. Call 1-800-345-DBMS 
today. Or use the rightmost 
coupon. Or mail one of the other 
coupons. And wait. 

ORACLG' 

COMPATIBILITY » PORTABILITY • CONNECTABIUTY 

Call 1-800-345-DBMS today. 



Old Orchard Road 
Armonk, NY 10504 

Attached is a blank check. I keep read- I 
ing that you've already announced ' 

that you're going to announce SQL for I 
OS/2 and the Personal System/2. 

When you do, fill in the check amount. 
Hope to hear from you sometime in 
the next couple years. 



1 1 
l 



Name 


Title 


**«_ j-. 


Company 


\ 


Street 


\ 
■ 
i 


City 


s 

J t y4 



1 1 
II 
1 1 



Dear Oracle, 

PC ORACLE • Oracle Corporation 
20 Davis Drive • Belmont, CA 94002 

I want to run OS/2 ORACLE on MS-DOS today. 

I agree to use this license only for application 

development. I understand all prices include 

applicable taxes and postage. 

Send me (check only one): 

D PC ORACLE $199 

□ ORACLE + 1MB Extended memory $599 

□ ORACLE + 2MB Extended memory $799 

I'm paying by □ Check D VISA D MC D AMEX 



Company 



J 

i 
/ 

J 



City 



Credit Card Number 



Card Expiration Date 




I State Zip ( s / I' I State Zip W % / I Signature BYTE ""—- / ! 



0m Oracle fartwy • Mattel, CAMM2 ■ World Httdqitrtart (415) 5S8-M08 • Calgary (403) 2IS-2I22 * Dtttwe (113) W» I3J1 • Ootbtc (514) 337-0758 • Toronto (411) SM-7TM • ORACLE System Australia ei-Z-96»50*0 < ORACLE Europe 44141-6911 • ORACli Syttoms Hoeg Ko>f U2-5-2MIU 
•PC ORACLE require! in "OS/2 reedy" 2«8/3B6-b*ted PC running DOS 3.1 ♦ with 1MB titendtd memory (2MB It recommended) and a minimum 10MB bard dl«k drive 
Copyright © 1817 by Oracle Corporation. ORACLE It a raglftirod trademark of Orocle Corporation. TTii of 



Circle 157 on Reader Service Card 



BYTE 1987 Extra Edition • Inside the IBM PCs 35 



TECHNICAL IMPLICATIONS OF THE PS/2 



the price) or how many vendors will de- 
sign boards that use the 32-bit version of 
the Micro Channel bus. Another critical 
factor is IBM's Systems Application Ar- 
chitecture (SAA), which promises to pro- 
vide a standard user interface for all ap- 
plications. Noting that Apple's success 
with the Macintosh stems largely from its 
extremely consistent user interface, I 
cannot emphasize the role of SAA too 
much. If it's a lackluster design, it will 
either cripple the software that conforms 
to it, or designers will ignore it and go 
their independent ways— and I don't 



know which of these is worse. 

"A computer design always grows, in 
both software and hardware, well beyond 
what is immediately planned for it, and 
both the PS/2 hardware and the OS/2 op- 
erating system have a lot of elbowroom 
for future growth. Once the PS/2 be- 
comes the machine on most IBM users' 
desks, things will be quite nice. It's just 
the transition that's going to be messy, as 
usual." 

A messy transition also worries Ed 
Tolson, president of Sof tLogic Solutions 
(Manchester, New Hampshire), who 



BASIC Programming Tools 



There's nothing basic about these 
professional programming utilities. 

Whether you're a seasoned expert or 
just starting out, we can help you create 
programs that run faster, work harder, 
and simply look better. We have built our 
reputation on customer satisfaction by 
providing expert advice and quality 
technical support. All Crescent Software 
products include source code, demonstra- 
tion programs, clear documentation, and 
a 30-day satisfaction guarantee. 

■ QBase is a superb screen designer 
and full-featured relational database. 
Because we include complete BASIC 
source code, QBase can be custom- 
ized to suit your needs. Besides its 
database capabilities, QBase is out- 
standing for creating custom titles, 
help screens, and product demos, 
and includes a versatile slide-show 
program. $99 



0*** 



c^ 



Oiji*^ 



^-.v.*- 



Sft* 



£ 



N**" 



QBase Report enhances QBase by 
generating reports with multiple levels 
of sorting, automatic record updating, 
browsing, and transaction posting. 
As a special bonus, QBase Report 
includes a complete, ready to run, 
time billing application for computer 
professionals. $69 

I QuickPak contains more than 65 
essential routines for BASIC program- 
mers. Included are programs for 
windowing, access to DOS and BIOS 
services, searching and sorting string 
arrays, creating pull-down and Lotus™ 
menus, accepting data input, and 
much more. QuickPak is loaded with 
examples and tutorial information, 
and comes with a clever tips and 
tricks book, plus The Assembly Tutor 
— a complete guide to learning 
assembly language from a BASIC 
perspective. $69 

By Customer Demand — QuickPak II 

More than 30 additional tools, includ- 
ing disk and printer tests to eliminate 
the need for On Error in your programs , 



and a multi-line text input routine that 
lets you put a note pad with full word 
wrap anywhere on the screen from 
within your programs. Other routines 
include binary file access, more menus, 
multiple screen save and restore, con- 
tinuous time display, automatic box 
drawing, and much more. (Available 
for use with QuickBASIC only.) $49 



y^ 



GraphPak is an extensive collection 
of routines for displaying line, bar, and 
pie charts automatically within your 
programs. It will create 3-D charts 
with manual or automatic scaling, 
titles and legends in any size or style, 
as well as scrolling and windowing in 
graphics. GraphPak also comes with a 
sophisticated font editor for custom- 
izing your own character sets. $69 



CRESCENT 
SOFTWARE 



64 Fort Point Street, East Norwalk, CT 06855 
(203) 846-2500 

Separate versions are available for Microsoft 
QuickBASIC and Borland Turbo Basic — please 
specify when ordering. No royalties, not copy pro- 
tected, of course. We accept Visa, M/C, C.O.D. and 
Checks. Add $3 shipping and handling, $10 overnight 
and foreign, $25 2nd day foreign. 




states, "OS/2 is the missing link between 
promise and reality. Even once OS/2 is in 
general use, it will take an additional one 
to two years before applications develop- 
ers fully exploit the potential of the PS/2 
machines. 

"In the meantime, the abrupt and radi- 
cal shift in system architecture may create 
major headaches for large user's groups 
with quantities of both PCs and PS/2 ma- 
chines. Support and maintenance, in par- 
ticular, will be significantly complicated 
by the difficulties of data-swapping and 
software compatibility created by the 
3%-inch disks and by the lack of com- 
patibility of virtually every piece of hard- 
ware in the system, necessitating differ- 
ent spare parts for each family. 

"Finally, one of the more subtle impli- 
cations of the PS/2 line relates to the 
large-scale integration of the components 
on the motherboard. While this is osten- 
sibly aimed at providing systems that are 
more reliable, the real motivation behind 
it is lower manufacturing costs. The up- 
shot for users is that board-swaps for 
these highly integrated systems promise 
to be very high in price after the warranty 
period expires. 

"It is hard to be completely comfort- 
able with this new standard when con- 
fronted by the tremendous divergence of 
paths created by new hardware that lacks 
a clear commitment to the 80386. Al- 
though there is an 80386 member of the 
PS/2 family, it currently just mimics an 
80286 machine, albeit twice as fast. The 
80286 seems to be the legitimate heart of 
the PS/2 line. Does this mean there will 
be another quantum leap in technology in 
just another couple of years?" 

The Micro Channel Bus 

The most intriguing technology in the 
PS/2 family is the high-speed system bus, 
called the Micro Channel. This bus opens 
up many new approaches to distributing 
computing tasks, since it permits a vari- 
ety of bus masters equal access to a com- 
mon data path. 

Jim Truchard, president of National 
Instruments (Austin, Texas), a maker of 
IEEE-488 bus devices, thinks the Micro 
Channel holds much promise. He says, 
"The Micro Channel architecture re- 
places the I/O adapter system found in 
previous IBM PCs. The new architecture 
supports the functionality of its predeces- 
sor but is not compatible with it, since it 
attempts to eliminate most of the PC s de- 
sign deficiencies. 

"The Micro Channel architecture sup- 
ports three connector systems: a 16-bit 
system with 24-bit addressing, a 16-bit 
system with a video extension, and a 32- 
bit system with matched memory cycles 

continued 



36 Inside the IBM PCs • BYTE 1987 Extra Edition 



Circle 59 on Reader Service Card 



The Ten Recommendments 




MODEL 9000 

—Fastest programmer on the market. 
—Quick & Intelligent programming algorithms. 
—Supports Megabit Eproms, including MPUs. 
—Programs largest variety of chips incl. Prom 
replacements, Eproms and EEProms. 




MODEL 7228 

—Programs all popular chips to 512K. 
—Intelligent programming algorithms. 
—High performance to cost ratio. 
—Free communications software. 




MODEL 7344 PAL DEVELOPMENT SYSTEM 

—Includes programmer, GPC Compiler and 

communications s.w. 
—Program, secureandfuctionalitytest 20&24 

pin pals. 
—Supports MMI, NAT, Tl, Cypress Erasable 

CMOS PALS. 
—A must for any new cost effective design . 






MODEL 7128 

—Compatible with virtually any computer. 
—High performance to cost ratio. 
—Programs all popular chips, incl. MPUs. 
—Free communications software. 



MODEL 7956 PLUS 

—Programs 8 eproms at a time. 

—Programs all chips, to one megabit, incl. single 

chip processors. 
—Operates serial to 56Kbps or stand alone. 
—Ultra fast communications software. 



MODEL 705 

—Stand alone operation. 

—Programs Motorola 68705 Family MPUs. 

—One button operation from cycle power to 

verify. 
—Great for production. 






PCSS-8 SERIAL BOARD 

—Eight RS232 ports per card (optional 4 port) 
-All eight ports. 100% DOS compatible. 
—32 ports may be added to a PC . 
-Optional RS422 to 4000 ft. 
—Interrupt driven BIOS Enhancement Software 
included free. 



MODEL 2010 SINGLE BOARD COMPUTER 

-2010B: Intel 8032 Basic v1 . 1 Solid State 

EEProm Disk System. 
— 2010M: Machine Language with built-in 

assembler/disassembler. 
-64KByte RAM, 40 BIT programmable I/O 

lines. 
— RS232 & expansion interface. 



MODEL ROMX-2 EPROM EMULATOR 

-Emulates 271 6-27256 eproms. 

— Battery backed up, auto emulate on power-up. 
—Low-cost, paysforitself on first project. 
—Free 19. 2K Serial Communications Software. 

— 1 50 NS access with faster optional . 




CPEmulator e 

-Runs CPM programs on IBM PC/AT/PS2/386S 
—No hardware required. (V20 &V30 supported) 
—Completely portable. 
—Supports complete Z80 Instruction Set. 
-CPEmulator & utilities only $99. 



All GTEK products are manufactured by GTEK in the U.S.A., are fully warranted for 
1 year and offer free technical support. These products do not occupy card slots 
(except PCSS-8) and work with IBM PS/2® and 386 machines. So, order toll free 
today at 1-800-255-4835. 



Developmental Hardware & Software 
Drawer 1346; 399 Highway 90 
Bay St Louis, MS 39520 
l N r (601)467-8048 

Telex: 315814 (GTEK UD) 




TEK 



IBM PS/2 is a registered trademark ol International Business Machines, Inc. 



Circle 263 on Reader Service Card (Dealers: 264) 



BYTE 1987 Extra Edition • Inside the IBM PCs 37 



TECHNICAL IMPLICATIONS OF THE PS/2 



and 32-bit addressing. Eight high-perfor- 
mance direct-memory-access channels 
provide DMA transfer rates from 4 to 8 
megabytes per second. These rates are 
substantially higher than those of the 
PC AT. 

"Nimble support of multiple bus mas- 
ters makes possible the support of high- 
performance multiprocessor systems. 
The Programmable Option Select (POS) 
feature eliminates the headaches associ- 
ated with conventional hardware jumpers 
and switches. The features of the Micro 
Channel combine to provide the simplic- 



ity and flexibility needed to carry the 
PS/2 machines into the next generation of 
applications, including networking and 
multiprocessing. 

"On the negative side, the reduced 
form factor imposed by the Micro Chan- 
nel (the cards are 40 percent smaller than 
AT cards) will tend to limit the variety of 
I/O options to high-volume applications 
that can support custom chips and sur- 
face-mount technology (SMT) or simple 
applications that require only small 
amounts of board real estate. The band- 
width of communication between devices 



MIRROR H 



TM 



THE BETTER CROSS1ALK 

UPGRADE WITH THE 
MONEY-BACK GUARANTEE! 



Compare Before You Buy or Upgrade! 


$245.00 

Crosstalk Mk. 4 


$195.00 

Crosstalk XVI 


$69.95 

MIRRORII 


Crosstalk XVI |J1 

Compatibility B^^ 1 


D 


D 


Features 





C 




Background ^^ m 
Communications 


— 


a 


Integrated Text 

Editor mm 


— 


a 


Auto-Learn Mode 


— 


a 


Site Licensing w^m 


— 


a 


60- Day Money- ^^ m 
Back Guorantee 


— 


a 



Not Supported Foi 



Good Better 



LEGEND: — 




60-DAYS RISK FREE 

Don't let their "New Flagship" 
leave you at the dock. Try 
MIRROR II for 60-Days, RISK 
FREE! Why sacrifice 
Crosstalk XVI compatibility, 
with an expensive voyage on 
the "New Flagship" and no 
guarantee of Free Passage if 
you don't like the trip. 
To order callToll Free: 1-800- 
634-8670 (In Florida call: 
(904) 878-8564) 

$69.95 l^l MC ll co °l 

Shipping/Handling $5.00 
(COD add $3.00] 
Overseas Orders $18.00 
Florida Residents add 
5% Sales Tax 

MIRRORX. 



Ooss'olk, Crosstalk XVI and Gossialk Mk. - „ 
(jaJemorkso'SoftKloneD'Sthbuiinp Corporation Mil 
When ordering, please spec-fy 3 h or S '-" <*■* '""' 



336 Office Plaza Drive 
Tallahassee, Florida 32301 
(904) 878-8564 
Telex: 6714280 KLON 

inhered trademarks of O:gitol Communications Associates, Inc i MIRROR. MIRROR II ond SoltKlone are 
ifJfiOR II <s available for IBM and compatible systems running MS-DOS 2 3 or higher including the IBM FS'2 



plugged into the backplane is limited be- 
cause the main processor shares its band- 
width with backplane devices. The op- 
tion between boards with 16- and 32-bit 
data paths will encourage vendors to sup- 
port only the 16-bit I/O function, there- 
by reducing performance on 80386 
machines." 

The Micro Channel's form factor has 
Trevor Marshall, vice president of engi- 
neering at Definicon Systems (Chats- 
worth, California), worried as well. He 
explains, "The biggest surprise I got 
from the PS/2 announcements was the 
Micro Channel architecture. I had cer- 
tainly expected a proprietary bus with 32- 
bit capability, but I was astonished to find 
that the new expansion card was so much 
smaller than the old AT profile card (only 
59 percent of the surface area). 

"The effects of that change are really 
quite profound. Unless new technologies, 
such as ASICs or surface mounting, are 
used, it is not possible to continue to sup- 
ply complex systems (such as 32-bit co- 
processors) for the Micro Channel. Since 
these technologies require high-produc- 
tion volumes to be economical, small in- 
dependent (and innovative) add-in houses 
will be unable to effectively compete in 
the Micro Channel marketplace. 

"Even if a product's development can 
be commercially justified, a limitation 
has now been placed on the complexity 
and performance of the add-in system. 
For instance, looking at our latest copro- 
cessor product, the IC package surface 
area of the CPU, the floating-point inter- 
face, and the Weitek floating-point chips 
alone take nearly 40 percent of the avail- 
able Micro Channel board space. Our AT 
profile board is fully packed with 48 
square inches of support circuits, includ- 
ing only 1 megabyte of high-speed RAM. 

"The use of SMT or ASICs is neces- 
sary to increase this available RAM to a 
useful figure, even with the AT add-in 
technology. Porting such a product to the 
Micro Channel would require a size com- 
pression of these support circuits from 48 
square inches to 22 square inches, an im- 
possible task using SMT alone. Thus, 
IBM has mandated that we develop 
ASICs to meet the new form factor. This 
means fewer product variations and sig- 
nificantly increased lead time to market 
new CPU technologies. 

"In addition, there is no way that such 
a system could be implemented on a 
Micro Channel board without consider- 
able manufacturing investment, which 
would raise the cost to the end user. 

"It is often said that the features of the 
Micro Channel are its high speed and its 
multiple bus-master modes. Why not just 
use the Micro Channel itself for the ex- 

continued 



38 Inside the IBM PCs • B Y T E 1987 Extra Edition 



Circle 205 on Reader Service Card 



WINDOWS FOR DATA® 

Uncommon Screens 



sen**; 

poP'° 



Invoices.* Create Review Print Exit 



CXOI 



cfi 



iA r ' 



88/03/8? 

i-Customer- 



Search for customer record? (?/N): 
Enter customer information? CY/fO* 
Enter billing address? (V/N): 
Enter marketing information? fV/N): 



No. PRODUCT 



DESCRIPTION 



8 UDCI UimloL CI 

9 UDLfi Uindous for Data Lattice 
10 UDMS Uindous for Data hie. 

il UDTC Uindous for Data Eu*fc 




Uindous for Data - CI 
UDLft Uindous for Data - Lattice 
UDMS Windows for Data - Microsoft 
JEEffl Uindous for Data - Turbo C 



WiluaR Jones 
Innovative Software 
351 Bulletin Avenue 
NeeAhaa, MA 82194 
7) 394-5512 



QUANTITY PRICE AMOUNT 

2 3%. 88 799.00 

3 395.08 1185.08 
5 395.00 1975.00 
3 395.00 1185.00 



1 ENTE 



I choice menu 







I 



f you program in C, take a few 
moments to learn how Windows for 
Data can help you build a state-of-the- 
art user interface. 

□ Create and manage menus, data-entry forms, context- 
sensitive help, and text displays — all within windows. 

□ Provide a common user interface for programs that must 
run on different machines and operating systems. 

□ Build a better front end for any DBMS that has a C- 
language interface (most popular ones do). 



FROM END TO BEGINNING 
Windows for Data begins 
where other screen packages end, 
with special features like nested 
pop-up forms and menus, field en- 
try from lists of choices, scrollable 
regions for the entry of variable 
numbers of line items, and an ex- 
clusive built-in debugging system. 



NO WALLS 

If you've been frustrated by the limitations of other 
screen utilities, don't be discouraged. You won't run into 
walls with Windows for Data. Our customers repeated- 
ly tell us how they've used our system in ways we never 
imagined — but which we anticipated by designing Win- 
dows for Data for unprecedented adapatability. You will 
be amazed at what you can do with Windows for Data. 

Circle 237 on Reader Service Card 




YOU ARE ALWAYS IN CHARGE 

Control functions that you write and attach to fields 
and/or keys can read, compare, validate, and change the 
data values in all fields of the form. Upon entry or exit 
from any field, control functions can call up subsidiary 
forms and menus, change the active field, exit or abort 
the form, perform almost any task you can imagine. 

OUR WINDOWS 
WILL OPEN DOORS 

Our windows will open doors to 
new markets for your software. 
High-performance, source-code- 
compatible versions of Windows 
for Data are available for 
PCDOS (OS/2 soon), XENIX, 
UNIX, and VMS. PCDOS 
versions are fully compatible with Microsoft Windows, 
TopView, and DESQview. No royalties. 

You owe it to yourself and your programs to try Win- 
dows for Data. If not satisfied, return for a full refund. 
Call for FREE DEMO. 

Vermont 
Creative 
Software 

21 Elm Ave., Richford, VT 05476 

Telex: 510-601-4160 VCSOFT FAX 802-848-3502 

Tel.: 802-848-7731 

Prices: PCDOS $395; XENIX, VMS, UNIX Call. 

BYTE 1987 Extra Edition • Inside the IBM PCs 39 





FoV6nly $99.95 BOOKMARK Protects You From: 





BLACKOUTS 


.,- 'Is 


U 




: - - ] 









BOOKMARK pmtects you against loss of work and time Work in progress, up to the previous BOOKMARK place- 

due to unexpected incidents. ment, is safe! 



J SYSTEM CRASH 

T ..t-M 




FROZEN KEYBOARD 




System crashes used to mean complete loss of data in 
memory, but not any more. 



When the keyboard freezes up you've got to reboot— and 
you can't even save first. But with BOOKMARK, work is 
already saved. 





Memory-resident utility software that automatically saves 
work in progress to the hard disk at user-definable intervals. 

Resume where you left off with a 

SINGLE keystroke! 

/ 

TO Order Call ToH FREE )n California Cail Toil Free 800-543-MARK 

800-544-MARK or calUor I h e dealer or distributor nearest you. 



Raquiomarrta: 

IBM POXm ot 100% Compatible • 256k to S4rjk • IBM OOS 2 1 w H.gher. l Floppy Drive * Hard Oak 

Drive (10 Megabytes Minimum) « Video Display Adaptor IBtf (Monochrome. Color. Enhanced CoSor) 

Herculas, AST (800KM ARK occupmsen equivalent space on ha;d d>sk os in system RAM o*ue video 

RAM) 

BOOKMARK' l» 3tradefnarKottNreutSOnin|etriational.Copy fi B h '>."t96e, tWDytNTELUSOrr . 
International, Ailri^hls reserved. Poloni Pending. Other brand and product names ate trademarks of 
their respective holder*. 



• increased compatibility Including I8M 
003 3.3 fld ptug-tn hard disk cerde* 

• New undo function Kay 

• Audible Indication option of BOOKMARK save 

• Keyboard Input now appear! simultaneously 

during BOOKMARK eeve 

• Advanced ueer mode 



INTEJ-L150FT: 

INTERN ATJONAU 

51 Digital Drive • P.O. Box 5055 • Novate California 94948 
(415) 883-1188 • Telex 470766 • Fax (415) 883-2646 



S The 14th International 

formation Management 
Exposition & Coherence 

Booth No. 249 



cor nin9 



Soon! 



M ^^PV Booth No. J.**v 

The 10th NORTHEAST COrAPUTERFAlRB 

The vVorld Trade Center ^ Pier Five 

Exhibition Center COW _ ^ ^ 436 
Boston, MA uci. ia • 

—.... ..i*lss« __1I 'Of 



BOOKMARK add-on utility for 
extended and expanded RAM 
applications. 

BOOKMARK for Novell Network 
workstations 



TECHNICAL 
IMPLICATIONS OF THE PS/2 



pansion RAM? Well, it is already three 
times too slow for today's CPU technol- 
ogy. Cycle times on today's advanced 
microprocessors, such as Sun's SPARC, 
are typically 60 nanoseconds. As eariy as 
the first quarter of 1988, cycle times will 
have fallen to 40 ns. When the emitter- 
coupled logic (ECL) bipolar version of 
the SPARC is available in 1989, then 10 
ns will be the system speed requirement. 

"The Micro Channel has an absolute 
minimum cycle time of 200 ns. Clearly, 
the Micro Channel alone is not the bus for 
the future. Innovative add-in technology 
will be required if the PC is to keep pace 
with the expanding world of the super- 
microcomputer workstation. " 

Another view of the Micro Channel re- 
veals some other interesting quirks. Jon 
Shiell, systems architect at CGAA 
(Sunnyvale, California), who writes 
about the new bus in his article entitled 
"The 32-bit Micro Channel" on page 59 
in this issue, sees it this way: 

"The Micro Channel is a big step in 
the right direction, even though it's not 
complete; the current 32-bit Micro Chan- 
nel slots don't appear to support matched 
memory cycles for anything other than 
the system microprocessor. In addition, 
the current versions of the Model 80 
don't support 32-bit addresses for DMA, 
or, for that matter, 32-bit data. There is 
nothing that precludes future machines 
from doing so. 

"POS is another good move; the fewer 
switches, the better. However, I suspect 
that as time goes on, either the POS setup 
program that IBM provides will have to 
get smarter or some people will end up 
with unconfigurable PS/2 machines. 
(Note that I am ignoring the idea that 
someone else could provide an equivalent 
program.) 

"My major problem with the Models 
50 and 60 is that they should have been 
zero- wait-state machines, and the Model 
50's hard disk drive should have been a 
faster, 32-megabyte unit. I would also 
like to see a version of the Model 80- 1 1 1 
running with a cache at 20 megahertz 
with zero wait states and 32-bit DMA and 
MMC (matched memory cycle) for other 
bus masters. Such a system would be 
great for adding a second processor as a 
bus master with its own cache. 

"However, there is no question in my 
mind that the most important thing about 
the new machines is that they are not 
closed. Whether they can be cloned is an- 
other question from the legal sense, but I 
see nothing in the technical sense that 
would prevent it. " 

Fitting the Pieces Together 

The Micro Channel is an obviously im- 
portant technical innovation, but how do 



40 Inside the IBM PCs • BYTE 1987 Extra Edition 



Circle 106 on Reader Service Card 



TECHNICAL 
IMPLICATIONS OF THE PS/2 



the pieces of the PS/2 puzzle fit together? 
Ray Duncan, president of Laboratory 
Microsystems (Marina del Rey, Califor- 
nia), suggests that the new machines 
change the nature of the whole ball game. 
He notes, "The new IBM PS/2 Models 
50, 60, and 80 are slick machines in their 
own right, but I think that their real sig- 
nificance lies in their role as portents of 
the future. 

"First, the PS/2 machines dramatical- 
ly raise the baseline level of computing 
power that people can reasonably expect 
of any desktop computer. Whereas to- 
day's clone maker can still foist off 8088- 
based machines with floppy disk drives 
on the buying public, the low-end clone 
builder of two years from now will have 
to provide, at minimum, an 80286- or 
80386-based machine with 2 megabytes 
of RAM, a hard disk drive, and a high- 
resolution graphics system with an analog 
monitor— or be shut out of the market- 
place. And I would hate to try to predict 
what kind of machine the high-end clone 
manufacturers, like Compaq, will be de- 
livering in two years. 

"Next, the long-range significance of 
the new Micro Channel bus can only be 
dimly imagined at this point. As design- 
ers learn to exploit its wider data path and 
ability to support multiple bus masters, 
we should see the emergence of copro- 
cessor, disk-controller, and graphics ex- 
pansion cards that will triple or quadru- 
ple the power of a bare PS/2 machine. We 
may also see network adapters with an 
on-board processor and RAM that will 
allow a PS/2 machine to be used as a 
server with no degradation whatsoever in 
its performance for the local user. 

"Finally, the PS/2 line represents a 
significant redirection of some of IBM's 
most prized resources. These machines 
remind us what formidable high-tech tal- 
ent IBM can bring to bear— when it 
chooses to— in the areas of styling, me- 
chanical design, large-scale integration, 
and efficiency of manufacturing. By 
comparison, the original PC line of com- 
puters are just clunky-looking boxes built 
from off-the-shelf components from the 
corner electronics store. 

"Where does the PS/2 Model 30 fit in? 
In my opinion, nowhere. Its inclusion of 
the old bus, an 8086 processor that can't 
run protected-mode operating systems, 
and an idiosyncratic video controller, 
mark it as an interim machine with no 
growth path. This is a machine that will, 
or at least ought to, quietly fade away in a 
couple of years like its philosophical pre- 
decessors, the IBM Portable PC, PCjr, 
PC AT/370, and PC XT/286. If you like 
the Model 30, maybe you'd also be inter- 
ested in this neat Osborne computer sys- 

continued 



Unmatched 



If you want 
unmatched 
performance and 
portability, we 
have it. The 
hottest file 
handler and 
report generator 
on the market. 



The c-tree file handler offers 
unmatched file accessing speed. The 
r-tree report generator makes pro- 
ducing reports a snap. Both pack- 
ages offer unmatched portability. 
Thousands of programmers are 
using these packages in over 50 sys- 
tem environments: DOS, UNIX, 
XENIX, OS/2, MACINTOSH, VAX, 
TOWER and YOCIRS. 

More for your money • complete 
C-source code • single and multi-user 
capability • no royalties • unlimited 
free technical support • port to all 
machines for one price. 

c-tree features • fixed and variable ^ 
length data records • record locking 
• variable length keys and key 
compression • overcomes OS file 
limit and more. 

rtree features • no printer spacing 
charts • change reports without 
recoding • unlimited control breaks, 
accumulators and virtual field calcu- 
lations • powerful search, select 
and sort capabilities over multiple 
files saves days of coding. 

FairCom's unmatched products will 
work for you. Order c-tree today for 
$ 395, r-tree for $295. When ordered 
together, r-tree is only $255. For 
VISA, MasterCard and C.O.D. orders 
call (314) 445-6833. Fore-tree 
benchmark comparisons, write us at 
4006 West Broadway, Columbia, 

MO 65203. Circle 79 on Reader Service Card 






m 




TM Til 

c-tree /r-tree 
By FairCom 

4006 W. Broadway Columbia, MO 65203 



UNIX Is trademark of AT&T, MACINTOSH Is trademark licensed to Apple Computer Company, 
VAX Is trademark of DEC, TOWER Is trademark of NCR. XENIX ts trademark of Microsoft 



Circle 124 on Reader Service Card 



UNIVERSAL 
PROM/PAL7MICRO 

PROGRAMMER 



U.S. prices From 



$995.00 



* 



□ EPROMSTOl MEG 

□ EPROM SIMULATION 

□ SET PROGRAMS 

D 20-24 PIN PLD/EPLD 

□ BIPOLAR PROMs 

□ SINGLE CHIP MICROS 

D RS-232/PC DRIVEN OR 
STAND-ALONE 




1-800-33 1-PROM 

(305)974-0967 Telex 383142 Fax (305) 974-8531 
From a Name You Can Trust 



LOGICAL DEVICES INC. 

Represented In 18 Countries 
1321 NW 65th Place, Ft. Lauderdale, FL 33309 



•Some devices require optional Adaptors - PAL is a Trademark of Monolithic Memories Inc. 



DataSaver! 



Power protection for high-level microcomputers with 
peripherals, multi-tasking systems, and communi- 
cation networks is here, now, with the 400 Watt 
DataSaver. Placed between the desktop computer 
and system monitor, the DataSaver 400 features 
a master power switch directing four power outlets. 
2-stages of overvoltage transient suppression and 
built-in, automatically recharged batteries stand by 
to assure clean, uninterrupted power. 90 and 200 
Watt models available. 



Editors 




Cuesta Systems Corporation 



3440 Roberto Court 

San Luis Obispo, CA 93401 



42 Inside the IBM PCs • B Y T E 1987 Extra Edition 



805/541 -4160 TLX:4949381 CUESTA 
Dealer, VAR, & OEM inquiries invited. 



Circle 62 on Reader Service Card 
(Dealers: 63) 



TECHNICAL 
IMPLICATIONS OF THE PS/2 



tern that I've got in the closet ..." 

The long-range potential of the PS/2 
line also impresses Carrell Killibrew, 
graphics processor manager at Texas In- 
struments (Houston, Texas), who says, 
"The IBM PS/2 architecture is the foun- 
dation of the most powerful personal 
computing systems of the next 10 years. 
PS/2 systems will have adapters for per- 
forming almost any computer-capable 
task, and they will be able to access hun- 
dreds of megabytes of disk storage and 
display results on monitors with speeds 
and resolutions surpassing today's best 
engineering workstations. These capabil- 
ities are not available today, but are the 
promise of the PS/2 machines' more so- 
phisticated and flexible bus structure, the 
Micro Channel architecture (MCA); 
faster disk subsystems; and standard 
display interface. 

"The MCA is a work of art. There will 
be more variation in the types and num- 
bers of adapters available for the PS/2 
family, since the MCA extends I/O de- 
vice addressing to the full 64K bytes sup- 
ported by the Intel 80x86 family (the PC 
and PC AT only supported lK-byte ad- 
dresses). The POS registers required to 
be in each adapter will allow the system to 
determine what each adapter is, what it 
does, and how to communicate with it. A 
nice benefit of this feature is that users will 
no longer worry about setting adapter-card 
switches to avoid address conflicts. Sup- 
port for multiple system bus masters is 
much better thought out than it was for the 
PC AT bus that preceded it. 

"Gone are the days of plugging strange 
and delicate cables into the original 
motherboard when upgrading to the next- 
generation Intel processor— your 80986 
option adapter (available perhaps in the 
year 2001) will have no trouble taking 
over PS/2 system resources. And if you 
are the type who wants to have multiple 
(and possibly different) processors in 
your system, the MCA supports arbitra- 
tion between 16 different bus masters. 

"The 1-to-l sector interleave available 
in PS/2 hard disk subsystems will make 
data-intensive applications and database 
programs run noticeably faster than they 
do on the more primitive PC AT versions. 
This situation will be improved even fur- 
ther when the IBMC ACHE. SYS driver is 
used to create fast disk-caching. 

"Note that disk-caching is inherently 
superior to RAM disks, since disk writes 
cause an actual write to the hard disk 
media. Need more hard disk capacity? 
The PS/2 machines should be capable of 
supporting many physical (not logical) 
disk subsystems with the MCA's eight 
DMA channels (of course, what I would 
do with eight 1 15-megabyte disk systems, 

continued 



"There's No Reason To Look Beyond 

PC TOOLS 



» 



-PC Magazine, Editors Choice Award, TwoTime Winner 



Data Recovery ♦ Fast Hard Disk Backup ♦ Disk Management 



Now we've given you even more 
reason-PC Tools™ Deluxe. 

PC Tools Deluxe gives 
you all the best features 
of Fastback 1 ; Norton™ 
XTREE T , M Mace T , M Side* 
kick® Lightning™ and 
Disk Optimizer- a $700 
value-for just $79. 

Other utilities may claim 
they "do it all" but only 
PC Tools Deluxe delivers: 

♦ A DOS shell so complete 
80 Micro called it their "over- 
whelming choice based on ver- 
satility, ease of use, and cost" 

♦ The best UNDELETE avail- 
able-instead of merely "guess- 
ing" it recovers all data even on 
fragmented files. ♦HARD DISK 
BACKUP faster and every bit 
as reliable as Fastback. ♦ The 
leading UNFORMAT for hard 
disks and floppy disks, enabling 
you to recover from almost any 
disk disaster. ♦PCFORMATfor 
100% safe formatting of floppy and 
hard disks. ♦ A quick, reliable DISK 
CACHING utility for speeding up 
disk access. ♦ A fast COMPRESS 
feature that like Disk Optimizer dramatically improves hard 
disk performance. ♦ And a better resident mini WORD 
PROCESSOR than Sidekick, including word wrap, search/ 
replace, formatted page printing and more. 

Before you buy any of these other utilities, take a look at 
PC Tools Deluxe. Like PC Magazine, you'll find there's no reason 
to look any further. For the dealer nearest you, or to order 
direct, call (503) 244*5782, M-F, 8 a.m.-5 p.m. (West Coast time). 




CentrdPoint 
Software 

J INCORPORATED 

9700 S.W. Capitol Hwy. 

Portland, OR 97219 

(503) 244-5782 



Circle 46 on Reader Service Card 

PC Tools is a registered trademark of Central Point Software. All other product names are trademarks of their manufacturers. 



24-PIN 



QUALITY AT 9-PIN PRICES! 



LPNNTer 324c 




High volume 24-pin color printing is now in your price range. If you're 
considering 24-pin printers from NEC, IBM, Epson, Toshiba, Alps, 
Fujitsu or any 9-pin wide carriage printer, then the NLQ 324c is 
the printer you've been waiting for! 

FEATURES: 

■ 300 cps draft/100 cps NLQ 

■ 24-pin color graphics/text 

■ Bi-directional tractor 
w/paper parking 

■ 8 K buffer w/32K option 
• Available with the 

Printers Plus 2- YEAR 
REPLACEMENT 
GUARANTEE! 
Call for details! 

LIST PRICE: $1195 

INTRODUCTORY 
PRICE: 

INCLUDES IBM CABLE! 

NLQ LPRINTER is a trademark of Printers Plus, Inc., Vienna, VA. This is not a liquidation or imitation 
product. Please call and we will gladly explain the difference between this product and any other product 
with any similarity. 

~CHddSE~PR0M "THE" WOMD'SlLARaEST"" 
SELECTION OF PRINTERS! 

We guarantee to match the lowest in-stock prices in this publication! 

And guess what! WE DO GUARANTEE COMPATIBILITY! Call about the 

unique Printers Plus Guarantee! 




PRINTERS 



LASERS 



APPLE 

AST 

CANON 

CIE 

C ITOH 

CORDATA 

EPSON 

H-P 

IBM 

Our expert R&D Department continuously monitors the latest printers on 

the market. IF YOU DON'T SEE IT, CALL! 



GREAT PRICES WITH A GUARANTEE TO MATCH 



ALPS 
BROTHER 

CIE 
CITIZEN 
C.ITOH 
DIABLO 
EPSON 
FUJITSU 



NEC 

NLQ® 

OKIDATA 

PANASONIC 

PRIMAGES 

SILVER REED 

STAR 

TOSHIBA 



KYOCERA 

NEC 

OASYS 

OKIDATA 

PANASONIC 

PCPI 

QMS 

QUME 



RS Pi. JS 



TECHNICAL 
IMPLICATIONS OF THE PS/2 




PRINTERS PLUS, INC. 

8486-C TYCO RD. 

TYSONS CORNER, VA 22180 



c?03) 734.0236 

WE'LL CREDIT COST OF LONG 

DISTANCE TELEPHONE CALL 

WITH ANY PRINTER PURCHASE. 



This offer good only through mail order division. Visit our 7 

retail showrooms for best local prices. 15% restocking fee 

applies to all returned or refused merchandise. 



I can't imagine). The one drawback to all 
this disk performance and capacity is the 
probability that it is the bare minimum 
necessary to support disk-hungry operat- 
ing systems, such as Unix and (I suspect) 
OS/2. 

"The PS/2 line will never suffer the 
display schizophrenia of the PC/XT/ AT 
family, thanks to IBM's placing the VGA 
on the motherboard and providing an 
auxiliary video extension (jWE) as part 
of the MCA. The VGA, regardless of the 
display monitor used, will allow develop- 
ers to write to a single display device for 
the majority of applications. 

"For those who need or want to take 
advantage of the performance and capa- 
bilities offered by display adapters with 
high-performance drawing processors, 
the AVE supports redriving VGA- 
sourced display information through the 
added display adapter. This clever archi- 
tectural innovation should result in an in- 
creasing flood of display adapters avail- 
able to the PS/2 market, since providing 
backward compatibility with the VGA is 
unnecessary. IBM's own 8514/A display 
adapter uses this feature of the MCA to 
supply VGA compatibility . " 

OS/2: The Missing Link 

Another important technology driving 
the PS/2 systems is the multitasking oper- 
ating system, OS/2. Few people have ex- 
perience with OS/2, but the people who 
have seen it are very excited by what 
they've observed. But all the experts que- 
ried for this article agreed that it was 
much too early to speculate on the poten- 
tial of OS/2. 

Skeptics of OS/2 were dismissed by 
Bill Gates of Microsoft in a speech to the 
Silicon Valley User Society recently as 
"the same kind of people who were reluc- 
tant to switch from CP/M to MS-DOS." 

The Implications 

From these reactions, we can conclude 
that the PS/2 machines inject just enough 
new technology into the PC milieu to en- 
liven our lot for a year or two. But the 
Micro Channel and 80286-based ma- 
chines by themselves do not usher in a 
new generation of computing power. And 
OS/2's potential is still long on promise 
and short on reality. 

The real technological breakthroughs 
peek over the horizon, however. The 
80386/80486-based machines running 
OS/3 (or whatever the next operating sys- 
tem will be called) and built around an 
even higher performance bus will be the 
machines we await most eagerly. 

In the meantime, we'll be busy porting 
and adapting software for the VGA and 
OS/2. That will keep us occupied until 
the next wave unfurls. ■ 



44 Inside the IBM PCs • BYTE 1987 Extra Edition 



Circle 186 on Reader Service Card 



How to tell the difference 

between DESQview™2jO and 

any other environment. 



Selecting DESQview, 
the environment of 
choice, can give you the 
productivity and power 
you crave, without the 
loss of your old pro- 
grams and hardware. 
If you like your existing 
programs, want to use 
them together, transfer 
data between them, 
print, sort, communi- 
cate with or process- 
in-background, yet still 
have the need to keep 
in place your favorite 
PC(8088, 8086, 80286 
or 80386), DESQview 
is the "proven true" 
multitasking, multi- 
windowing environ- 



r l— Lotus-i-2-3-580X-EGA 

AS: [U261 'Prpcter a GauMe Co 



INTERNATIONAL BUSINESS HA 
«CR CORP A— dBASE-IIWlus- 
)IGJTAL EG. 
GENERAL NT 



. 1^0. M,.-:, 




fej®* 



* 1 M*ntnra DuKIII 

>ossTalk-XYI-3.61 



396-39M - Haiti 




ment for you. Best of all, DESQview 2.0 is here now, 
with all the money saving, time saving, and productiv- 
ity features that others can only promise for the all- 
too-distant future. 

And with DESQview's new graphics enhancements 
for Hercules, CGA, EGA, and VGA, Version 2.0 still 
offers the same award winning and pioneering fea- 
tures for programs that earned DESQview its leader- 
ship, only now you can also run desktop publishing 
programs, CAD programs, even GEM-™ Topview-™ and 
Microsoft Windows-™ specific programs. In some cases 
you'll add as little as 10-40K to your system overhead. 
Now you can have multi-tasking, multi- windowing, 
break the 640K habit too and still get an auto dialer, 
macros, menus for DOS and, for advanced users, a new 
complete application programmer's interface capabil- 
ity. No wonder that over the years, and especially in 
recent months, DESQview, and now 
DESQview 2.0 have earned extrava- 
gant praise from some of the most 
respected magazines in the industry. 

"Product of the Year" by readers 
vote in Info World. 

"Best PC Environment" by popu- 
lar vote at Comdex Fall in PC Tech 
Journal's "System Builder" Contest. 

"—Iwouldn't want to run an IBM 



or compatible 
computer without 
DESQview"- -Info- 
World, Michael Miller. 

"A colossus among 
windowing environ- 
ments". . . "will run 
almost anything"— PC 
Week, Marvin Bryan. 

"Windows, prom- 
ises, but DESQview 
delivers— MICRO- 
TIMES, Birell Walsh. 

No other environ- 
ment has consistently 
pioneered features, open- 
ness, and productivity. 
See for yourself. Send in 
the coupon. The possi- 
bilities are endless with 
DESQview 2.0. 



One picture is worth a thousand promises. 

Attention Programmers: For more information 
about Quarterdeck's API, and future 386 program 
extensions, call us today. 



SYSTEM REQUIREMENTS 

IBM Personal Computer and 100% compatibles (with 8086, 8088, 80286 or 80386 
processors) with monochrome or colordisplay; IBM Personal System/2 * Memory: 640K 
recommended; for DESQview itself 0-145K • Expanded Memory (Optional): expanded 
memory boards compatible with the Intel AboveBoard; enhanced expanded memory 
boards compatible with the AST RAMpage • Disk: Two diskette drives or one diskette 
drive and a hard disk • Graphics Card (Optional): Hercules, IBM Color/Graphics (CGA), 
IBM Enhanced Graphics (EGA), IBM Personal System/2 Advanced Graphics (VGA) • 
Mouse (Optional): Mouse Systems, Microsoft and compatibles * Modem for Auto-Dialer 
(Optional): Hayes or Compatible* Operating System: PC-DOS 2.0-3.3; MS-DOS2.0-3.2 • 
Software: Most PC-DOS and MS-DOS application programs; programs specific to 
Top View 1.1, GEM 1.1 and Microsoft Windows 1.03 • Media: DESQview 2.0 is available 
on either 574" or 3'/%" floppy diskettes 



Rush me DESQview 2.0! Ibday! 

No.ofCopies MedizZW/bV*" Product 



Retail Price ea. Tbtal 



BY-10/14 I 
i I 



INFO 


WORLD 




DESQview 2.0 




9.1 






JuljrHWHT 











DESQview 2.0 


$129.95 


$ 


Shipping & Handling USA 

Outside USA 


$ 5.00 
$ 10.00 


$ 


Sales Tkx (CA residents) 


6.5% 


$ 


Payment: DVisa DMC DAM EX D Check 


Amount 
Enclosed 


1 



Credit Card: Valid Since _ 



_ Expiration _ 



Card Number: 



Credit Card Name- 



Shipping Ad dres 
City- 



-Zip- 



-Tele phone— 



'iew I 



Mail to: Quarterdeck Office Systems, 150 Pico Boulevard, Santa Monica, CA 90405. 
NOTE: If you own DESQview call us for a special upgrade offer, or send in your DESQview 
registration card. AST Special Edition users included. 

See us at 

AIMK 

November 2-6, 1987 
Las Vegas Hilton Hotel 
Las Vegas, Nevada 
Quarterdeck 
Quarterdeck Office Systems • 150 Pico Boulevard, Santa Monica, CA 90405 • (213) 392-9851 

DESQview is a trademark of Quarterdeck Office Systems. AboveBoard is a trademark oflntel Corporation. Hayes is a trademark of Hayes Microcomputer Products Inc. IBM, PC, Personal System/2 and TopView are 
trademarks of International Business Machines Corporation. Microsoft Windows and MS are registered trademarks of Microsoft Corporation. Mouse Systems is a trademark of Metagraphics/Mouse Systems. RAMpage 
is a trademark of AST Research, Inc. GEM is a trademark of Digital Research. Hercules is a trademark of Hercules. 




Circle 191 on Reader Service Card (Dealers: 192) 



B Y T E 1 987 Extra Edition • Inside the IBM PCs 45 



16 Modems on one card ? ? 



It sounds incredible, but it's true. Sixteen complete modem 
modules on one plug-in card, for the IBM PC, XT, AT, 
and compatibles. With software to match. It's called 
the GALACTICOMM BREAKTHROUGH - 
and we don't use that term lightly. 
Read on to find out why. 

The Conventional Approach 

To handle a large number of users, 
you are supposed to have a large, 
expensive computer, right? For 
example, to support 64 simul- 
taneous users in a system with real- 
time teleconferencing, electronic 
mail, upload/ download capa- 
bility and so on, you need at 
least a minicomputer. You 
are supposed to spend 
about $50,000 to 
$100,000, right? 
And you need special, 
high-capacity disk drives, 
maybe 9-track tape — not to mention plenum 
flooring, climate control, and a battalion 
of technicians on call 24 hours. 



i-y 





GALACTICOMM BREAKTHROUGH 

We have developed a way to support up to 64 
simultaneous users on a PC/AT, with real-time 
teleconferencing, electronic mail, upload/download 
capability, and so on. Average response times are 
better, in many cases, than equivalently loaded 
mainframes. The system bottleneck tends to be the 
hard disk more than anything else — which shows 
the performance of the communications subsystem. 
There are actually two distinct breakthroughs here, 
one in software and one in hardware. 

The SOFTWARE BREAKTHROUGH 

If you want to develop your own high-performance 
multi-user dial-up systems, this is for you. We 
supply a library of about 40 subroutines, written in 
assembly language but designed to interface to C, 
that takes care of all of the low-level, nitty-gritty 
component of your application: all of the hardware 
interrupt servicing, the "ring buffer" management 
for I/O data, echo, command and status queues, 
etc. etc. This not only saves you programming time, 
but more importantly, these routines are just 
unbelievably efficient. They form the core of the 
multi-user capability we provide, and, using them, 
you can afford to be more relaxed about the 
efficiency of your application-specific 
programming than you might think. 



46 Inside the IBM PCs 



BYTE 1987 Extra Edition 



taJIM 



iil 



!3;S& et/63'87 CHANEL B5 
. Cr EDITED EKiKser 21176S (PAID) 
e3:S& Bl'84'87 3ffi CLEANUP 
PEtn« FrceUe <Cr: 0) 
>B9iN 8I/M'37 IfAlH CC-fiSOLE 
mil® Pestynser (Cr: 8) 
S3:iC 81/eV87 CHANNEL 6? 
;■!* 1B6B9 St ryl.cr-) Ozone 
B9:ai C1/C4/87 risiIH CONSOLE 
CSEI'ITEt' JM 36823 fPAlfi) 
83:32 81/84/87 MhIH CONSOLE 
CBEMTED F-Ciuvara 1G388 (FRED 



— (B) — . — ( t ) — 
8 . iiiiiii 

11 hot* mini 

12 SICK-UP iiiiiii 

13 Lor! iiiim> 



MfoJft 
hlftryktr 



109:35 (JtVM/ai 



display post 



Ihvfinim 



detail set asj 

! JffpUy nailer of p*/ 

etuUte post 36888 PAID cr'J 

post 18838 FBEE ffg 

«Mlyze kill tmUte ctanel £??<• 



f i 



Not Out of 
the Woods Yet 

But hooking up software like this to conventional 
modems is awkward and costly. You have to use 
multi-port serial cards. You have to run great wads 
of serial cable out the back of your PC to stacks, or 
racks, of external modems, which in turn have their 
own power supply cables, telephone cables, and so 
forth. The result is a wiring nightmare — and all 
those separate cables and connectors between you 
and the telephone company don't do wonders for 
reliability, either. 

The Model 16 Modem Card 

The Model 16 solves all that. One card holds 16 
complete 300/1200 baud modems, including serial 
port interfaces, an individual microprocessor in each 
modem, all of the line filtering and auto-equalization 
logic needed, and 16 individual FCC-registered 
DAAs (Direct Access Arrangements, required when 
connecting to the public telephone network). That's 
pretty unbelievable too, but please read Steve 
Ciarcia's November 1985 Circuit Cellar column if 
you find yourself waxing skeptical. Steve is of 
course BYTE magazine's foremost columnist, and he 
seems to have a very high opinion of the devices 
we are using. 



(IBM PC, XT, and AT are trademarks of International Business Machines Corp.) 



Large or Small, It Works 

Slip four Model 16 cards into your AT, and you 
can support up to 64 data channels, or users, at one 
time. Even on an XT-class machine, you can 
generally handle 24 users or so without any 
problem. And if you're just getting off the ground, 
we also offer the Model 4, a half -slot card with 
only 4 modems on it. 

Support? 24-hour telephone hotline support for one 
full year is included in the base price of every card. 
You also automatically get free software library 
updates for one full year after buying a card. And 
our limited warranty on materials and workmanship 
also extends for one full year. 

Want off-the-shelf software? Start with The Major 
BBS, our demo multi-user Bulletin Board System, 
and adapt it to your exact requirements. For a free 
sample of what it's like, call (305) 922-3901 with 
your modem (8-N-l). If you want a copy, the C 
source and a 175-page book are included with it — 
and we're practically giving it away, to get you 
hooked. Give us a call. 

...or only 4? 




(^GALACTICOMM 

GALACTICOMM, Inc., 11360 Tara Drive, Plantation, FL 33325 (305) 472-9560 



BYTE 1987 Extra Edition • Inside the IBM PCs 47 



Announcing - the database 

development system that 

you designed. 



c 




PROGRAMMERS- 

We asked what you 
wanted in a database 
development system and 
we built it! 

db_VISTA III™ is the database development system for 
programmers who want powerful, high performance 
DBMS capabilities, . . . and in any environment . Based on 
the network database model and the B-tree indexing 
method, db_VISTA III gives you the most powerful and 
efficient system for data organization and access. From 
simple file management to complex database structures 
with millions of records. db_VISTA III runs on most 
computers and operating systems like MS-DOS, UNIX, 
VAX/VMS and OS/2. It's written in C and the complete 
source code is available, so your application perfor- 
mance and portability are guaranteed! With db_VISTA 
III you can build applications for single-user microcom- 
puters to multi-user LANs, up to minis and even main- 
frames. 



RAIMA'S COMMITMENT TO YOU: No Royalties, Source 
Code Availability, 60 days FREE Technical Support and 
our 30-day Money-Back Guarantee. Extended services 
available include: Application Development, Product 
Development, Professional Consulting, Training Classes 
and Extended Application Development Support. 

HOW TO ORDER: Purchase only those components 
you need. Start out with Single-user for MS-DOS then 
add components, upgrade ... or purchase Multi-user 
with Source for the entire db_VISTA III System. 
It's easy. . . call toll-free today! 



The db_VISTA IIF" Database Development System 

Q db_VIS TA": The High Performance DBMS 



The major features include: 

• Mull j-user support for LANs and multi-user 
computers. 

• Multiple database access. 

• File and record locking. 

• Automatic database recovery. 

• Transaction processing and logging. 

• Timestamping. 

• Database consistency check utility. 

• Fast access methods based on the network 
database model and B-tree indexing. Uses 
both direct "set" relations and B-tree in- 
dexing independently for design flexibility 
and performance. 

• An easy-to-use interactive database access 
utility. 

• File transfer utilities for importing/export- 
ing ASCII text and dBASE II/1II files. 

• A Database Definition language patterned 
after C. 

• Virtual memory disk caching for fast 
database access. 



• A runtime library of over 100 functions. 

• Operating systems: MS-DOS, UNIX V, 
XENIX, VMS, OS/2. 

• C Compilers; Lattice, Microsoft, IBM, 
Aztec, Computer Innovations, T\irbo C, 
XENIX, and UNIX. 

• LAN systems: Lif eNet, NetWare, PC Net- 
work, 3Com, SCO XENIX-NET. other NET- 
BIOS compatible MS-DOS networks. 

Q db„QUERY: w The SQL-based Query. 

• Provides relational view of db_VISTA 
applications. 

• Structured Query Language 

• C linkable. 

• Predefine query procedures or run ad-hoc 
queries "on the fly". 

EJ db.JREVISE w : The Database 
Restructure Program. 

• Redesign your database easily. 

• Converts all existing data to revised design. 



All components feature royalty-free run-ttme distribution, source code 
availability and our commitment to customer service. That's why corporations 
like ARCO, AT&T, Hewlett-Packard, IBM, Northwestern Mutual Life, UNISYS 
and others use our products. 



RELATIONAL DBMS 

INDEX 



QSQ* 



D 



NETWORK MODEL DBMS... db__ VISTA 

RECORD I ^RECORD 2 



SET 
POINTER 



db^VlSTA out-perform 

relational DBMS's with dire( 

access to data and less dai 

redundancy. Your application 

run faster and more efficiently 



db_VISTA III™ Database 
Development System 

db_Vl5TAlir 8595-3960 

d>_QUEnY m S595-3960 

db_l\|EVlSE " S 595 3960 

db_ VISTA" File Manager Starts at S195 

We'll answer your questions, help 
determine your needs and get you started. 

CALL TODAY! 



1-800-db-RAIMA 

(that's 1-800-327-2462) 

[¥3 RAIMA 

[_m^ CORPORATION ^ 

3055 112th Avenue N.E., Bellevue, WA 98004 (206)828-4636 55 
Telex: 6503018237MCIUW FAX: (206)828-3131 



INSIDE THE IBM PCs 



How OS/2 facilitates writing well-behaved TSRs 



TSRs Past and Future 
MS-DOS and OS/2 



Ray Duncan 



Terminate-and-stay-resident 
utility programs (TSRs) are a 
unique phenomenon of the 
MS-DOS marketplace. You 
load a TSR into memory like 
any other application pro- 
gram, but its life thereafter is 
sharply different. Instead of 
performing its processing 
when you invoke it, it reserves 
the memory it occupies with a 
special MS-DOS function call 
and then lurks in the back- 
ground until you need it, 
while returning overt control 
to the system's command pro- 
cessor, COMMAND.COM. 

TSRs can be broadly cate- 
gorized as either active or pas- 
sive. Borland's SideKick is 
one of the earliest and most 
popular TSR products, and it 
exemplifies an active TSR. It 
sends out tendrils here and 
there in the system so it can 
monitor key presses while you 
are running other programs. 
When SideKick recognizes its 
special activation key se- 
quence, or hot key, it grabs 
control of the screen and key- 
board, displays a pop-up win- 
dow, and awaits instructions. 
When you dismiss SideKick 
by entering the appropriate 
command, SideKick restores 
the screen to its previous state, 
returns control to the foreground applica- 
tion, and retreats into the shadows. 

A passive TSR usually performs its 
work silently, augmenting the capabili- 
ties of the operating system in some way. 
A passive TSR does not typically interact 
with you after you load it. 

Examples of passive TSRs are MS- 
DOS's APPEND command, which is the 
counterpart of PATH for data files, and the 
new FASTOPEN command, which saves 
information about previously accessed 




files so your programs can call and re- 
open data files more quickly. 

TSRs under MS-DOS 

As soon as MS-DOS programmers 
understood the generality and conve- 
nience of the TSR concept, their fertile 
imaginations bore fruit in incredibly var- 
ied resident utilities: keyboard macro ex- 
panders and enhancers, pop-up calcula- 
tors, phone dialers, calendars, notepad 
editors, spelling checkers, synonym find- 



ers, idea outliners, debugging 
aids, program profilers, on- 
line manuals, file squeezers 
and unsqueezes, screen dim- 
mers, and many more. 

As TSRs proliferated, prob- 
lems began to emerge, espe- 
cially as users found it in- 
creasingly desirable to load 
many different TSRs at the 
same time. 

One class of these problems 
stems from MS-DOS TSRs' 
disposition to take over hard- 
ware interrupts and perform 
direct operations on device 
controllers and the video re- 
fresh buffer to obtain maxi- 
mum performance and detect 
hot keys. The presence of one 
TSR in the system rarely 
causes difficulties, but when 
multiple TSRs battle over the 
same timer-tick interrupt or 
keyboard-scan code, their in- 
teraction might cause unpre- 
dictable system behavior or 
complete crashes. Inevitably, 
a whole new class of TSR now 
exists solely to activate, deac- 
tivate, unload on command, 
and arbitrate conflicts be- 
tween other TSRs. Various 
proposals for peaceful TSR 
coexistence have been put 
forth, such as the Borland 
API, the Lotus Metro, and the 
public domain Ringmaster specification, 
but none seems to be achieving wide- 
spread acceptance yet. 

continued 

Ray Duncan is a software developer and 
author of Advanced OS/2, which is 
scheduled to be published by Microsoft 
Press in January 1988. He can be 
reached do Laboratory Microsystems 
Inc., P.O. Box 10430, Marina del Rey, 
CA 90295. 



Illustration: James Endicott © 1987 



B Y T E 1987 Extra Edition • Inside the IBM PCs 49 



TSRs PAST AND FUTURE 



Listing 1: 


A demonstration of the i 


ise of the VIOPOPUP and VI0ENDP0PUP calls. 








; Flag controls action if 








; window not available. 


PopFlags 


dw 


1 


; 1 = wait , = no wait 


msg 


db 


'This is apop- 


upwindow' 


msg_len 


equ 


$-msg 










; put up pop-up window. . . 




push 


ds 


; address of pop-up flags 




push 


offset DGROUP 


PopFlags 




push 





; VIO handle (reserved) 




call 


VIOPOPUP 


; transfer to OS/2. 




or 


ax, ax 


; did function succeed? 




jnz 


error 


; jump if function failed. 
; now display message . . . 




push 


ds 


; address of message 




push 


offset DGROUP 


msg 




push 


msg_len 


; length of message 




push 


12 


; y-coordinate 




push 


( 80-msg_len) /2 ; x-coordinate (center it) 




push 





; VIO handle (reserved) 




call 


VIOVRTCHARSTR 


; transfer to OS/2. 




or 


ax, ax 


; did write succeed? 




jnz 


error 


; jump if write failed. 




push 





; pause for 3 seconds . 




push 


3000 


; (user must be quick readerl ) 




call 


DOSSLEEP 


; transfer to OS/2. 

; take down pop-up window, . . 




push 





; VIO handle (reserved) 




call 


VI0ENDP0PUP 


; transfer to OS/2. 




or 


ax, ax 


; did call succeed? 




jnz 


error 


; jump if call failed. 



Another category of TSR-related prob- 
lems derives from MS-DOS 's character 
as a single-user, single-tasking operating 
system. Since MS-DOS was not designed 
to support the execution of multiple con- 
current processes, most of its functions 
are not reentrant. This poses severe prob- 
lems for a TSR that needs to perform file 
operations but that might be activated as a 
result of a hardware interrupt that occurs 
while MS-DOS kernel code is executing. 
To be fair, the MS-DOS functions that 
make a TSR program possible (INT 27h 
or INT 21 h function 3 lh) were originally 
intended for installation of device drivers 
or interrupt handlers after the system is 
booted, not for interactive resident utili- 
ties. After a couple of years of experi- 
mentation and disassembly of critical 
paths within MS-DOS, developers have 
gradually evolved strategies for safe TSR 
operation that involve the use of undocu- 
mented but fairly stable MS-DOS func- 
tion calls and internal flags. (One of the 
best sources of this folklore is the 



ms.dos/secrets conference on BIX.) 

TSRs have been victims of their own 
success. As TSRs have grown in power, 
they have also grown chubby, and the 
user who configures his or her system 
with half a dozen handy resident utilities 
might find that the amount of RAM re- 
maining is barely adequate to run a word 
processor or spreadsheet. We jokingly re- 
fer to this situation as "RAM cram. " The 
options for the TSR developer are 
limited. The 640K-byte ceiling imposed 
by IBM on the RAM allotted for MS- 
DOS and its programs is solid enough 
that it's not worth fighting over. Alterna- 
tive solutions that involve the use of ex- 
panded (Lotus/Intel/Microsoft) or ex- 
tended (above the 1 -megabyte boundary) 
memory for storage of TSR code or data 
are worthless to PC owners without the 
proper hardware. 

TSRs under OS/2 

Now that OS/2, Microsoft's multitask- 
ing, single-user operating system, has fi- 



nally arrived, what is the outlook for 
TSRs? After all, traditional multitasking 
(the concurrent execution of multiple 
programs doing different jobs, usually on 
separate data sets) is quite a bit different 
from the TSR model of multiple utilities 
brought to bear on the same data, with 
one foreground program controlling the 
input and output files. If OS/2 were to 
lack the necessary facilities to support 
TSRs, software vendors would find it 
much more difficult to work around the 
operating system than they did under MS- 
DOS, since OS/2 runs the Intel 80286 in 
protected mode. 

There's good news and there's bad 
news. The good news is that the OS/2 de- 
signers have provided excellent down- 
ward compatibility with MS-DOS, even 
emulating many of its undocumented 
functions and internal tables and flags so 
that many currently available TSRs will 
run unchanged in real mode within 
OS/2's DOS 3.X compatibility box. The 
bad news is that none of the existing TSRs 
will run in protected mode at all; each 
one will have to be completely rewritten 
to conform to the new OS/2 Application 
Program Interface (API) and the various 
restrictions imposed by protected-mode 
operation. But more good news is that the 
positive aspects of 80286 protected 
mode, coupled with particular OS/2 
function calls aimed specifically at the 
needs of TSR programmers, should make 
the creation of powerful, well-behaved 
TSR utilities easier than ever before. 

Many of the problems that beset TSR 
writers and users under MS-DOS be- 
come irrelevant in the OS/2 environment. 
The memory protection and system of 
privilege levels that OS/2 provides in pro- 
tected mode should eliminate unpleasant 
interactions between TSRs and other pro- 
grams. The protected-mode virtual ad- 
dress space of 1 gigabyte will vanquish 
memory limitations for the foreseeable 
future. Also, since OS/2 supports multi- 
tasking and is fully reentrant, a TSR can 
call on operating-system services when- 
ever it needs to, without regard for the 
state of other programs that might be run- 
ning. In fact, the term TSR becomes a 
misnomer: A pop-up utility does not 
need to terminate and then play tricks 
later to regain control (but I will continue 
to use the term throughout this article). 

Key OS/2 Features for TSR Writers 

Three key OS/2 features, or families of 
functions, are of particular interest to 
TSR programmers: threads, pop-up dis- 
plays, and device monitors. 

Like other multitasking operating sys- 
tems, OS/2 supports the concept of a pro- 
cess, which represents the execution of an 
application program and the ownership of 



50 Inside the IBM PCs • BYTE 1987 Extra Edition 



TSRs PAST AND FUTURE 



any resources (files, memory, and so on) 
associated with that execution. Processes 
can spawn other processes and can ex- 
change data with other processes via a va- 
riety of interprocess communication 
mechanisms. Unlike other multitasking 
systems I am familiar with, OS/2 also has 
the notion of threads, which represent 
points of execution within a process and 
are the dispatchable entity known to the 
system's scheduler. 

Each process has a primary thread that 
receives control from OS/2 when the pro- 
cess is started; it begins executing at the 
program's designated entry point. How- 
ever, that primary thread can start up ad- 
ditional threads within the same process. 
Multiple threads within a process execute 
asynchronously to one another; can have 
different priorities; can manipulate one 
another's priorities; and can share access 
to the same memory, files, pipes, 
queues, and semaphores. 

TSRs are a natural application of the 
threads concept. For example, a screen- 
dump utility could contain three asyn- 
chronous threads that would communi- 
cate by semaphores: a thread to intercept 
critical errors (such as "printer off- 
line"), a high-priority thread to filter the 
keyboard character stream and watch for 
an activation hot key, and a low-priority 
thread that would copy the screen buffer 
into a disk file on demand. 

Under MS-DOS, each TSR has to con- 
tain logic to save and restore the previous 
contents of the video display when it is 
activated. Handling this properly for all 
possible text and graphics display modes 
is quite a chore, especially since some 
video cards have huge refresh buffers (en- 
hanced graphics adapters) or lack read- 
able registers to determine the current 
mode (Hercules graphics cards). 

OS/2, on the other hand, provides 
TSRs with an adapter-independent way to 
communicate with the user. A TSR can 
call the function VIOPOPUP to assert con- 
trol over the display. OS/2 saves the cur- 
rent screen contents and display mode, 
pushes the current foreground program 
into the background, switches into an 80- 
by 25-character text mode, clears the 
screen, and returns control to the TSR, 
which can then write to the screen at will. 
When the TSR no longer needs the 
display, it calls the function VI0END- 
POPUP, which causes OS/2 to restore the 
previous screen contents, display mode, 
and foreground program (see listing 1). 

Device Monitors 

Ordinarily, the flow of data between a 
character device and an application pro- 
gram follows a well-defined pathway 
through the system (see figure 1). By the 
time a character reaches an application 



program, it has been filtered, buffered, 
and generally detoxified. To let a TSR in- 
tercept characters at a low level without 
running afoul of protected-mode hard- 
ware restrictions, OS/2 incorporates a set 
of special support functions for another 
unusual concept: device monitors. A pro- 
gram can use these functions to insert a 
probe into the character stream within a 
device driver, sifting the characters be- 
fore they are passed upstream to the oper- 
ating system, and thence to applications. 

To become a device monitor, a pro- 
gram first calls the D0SM0N0PEN function 
with the logical name of the character de- 
vice it is interested in. The OS/2 kernel 
acts as the intermediary and asks the 
physical device driver whether it will 
support device monitors. If the driver ap- 
proves the request, OS/2 returns a moni- 
tor handle. The program must then call 
D0SM0NREG, passing the monitor handle 
and the addresses of two data buffers that 
will be used for input and output of de- 
vice-driver data packets. An additional 
parameter to the D0SM0NREG call specifies 
where the program would like to be in the 
chain of all monitors attached to this par- 
ticular driver: first, last, or "don't care." 
If additional programs later request the 
first (or last) position, the first program 
to make the request comes first (or last) 
in the monitor chain, the second program 
comes next, and so on. 

If the D0SM0NREG call succeeds, the 
program has successfully registered as a 



device monitor and becomes responsible 
for passing the keyboard data through its 
monitor buffers. This is accomplished 
with the functions D0SM0NREAD (which 
obtains a data packet from the driver that 
contains a character code, scan code, 
time stamp, and other information) and 
DOSMONWRITE, which returns a packet to 
the device driver. Typically, the program 
dedicates a high-priority thread to a tight 
loop that just performs successive D0S- 
MONREADs and DOSMONWRITEs, to avoid 
degrading the keyboard response that the 
user perceives. Between each read and 
write, the program can inspect the char- 
acter that is passing by, translate it, or 
consume it. The program can even add 
characters to the keyboard data stream by 
performing extra DOSMONWRITE calls. 

When the program wants to unhook it- 
self from the character stream it is moni- 
toring, it calls D0SM0NCL0SE with the 
monitor handle that was returned from 
the original D0SM0N0PEN. The program 
can then release its other resources and 
terminate without any untoward effects. 
Listing 2 shows a skeleton of the code that 
such a TSR program would use. 

Stamper: An Example 

My example program, called Stamper, 
demonstrates the essential elements of an 
OS/2 pop-up utility. Stamper registers as 
a device monitor for the keyboard driver 
(KBD$) and then creates a new thread 

continued 















Application 
program 




Device 
monitor 






i 


^ 






i 


i 






OS/2 Operating 
system 








I 


\ 






Device 
driver 














I 


\ 






Physical 
device 



















Figure 1: The left side of this diagram shows the normal flow of data from a 
character device to an application. Registering a device monitor changes the flow to 
add the box on the right. The characters are passed from the driver to the device 
monitor in packets, where they can be translated or deleted, and new characters can 
be added. The characters are then passed back to the driver and from there flow 
through the operating system to the applications. 



BYTE 1987 Extra Edition • Inside the IBM PCs 51 



Circle 200 on Reader Service Card 



BAR CODE 




0123456789 




Faster, More Reliable Data Entry 

Automating data input with bar codes 
slashes operating costs by increasing 
data entry speed and eliminating 
costly errors. Seagull Scientific Systems 
has designed innovative bar code 
reading and printing systems to save 
you time and money. 

PC, XT, AT, PS/2 & RS-232 

Our systems are compatible with all 
your existing DOS applications software 
because the data enters your com- 
puter as if it 
came from 
the key- 
board. Inter- 
nal and external bar code 
readers are available with 
stainless steel wands and 
laser interfaces. Our dual serial port 
(RS-232) model also supports data 
terminals and non-DOS systems. 



^ 




BCR-1000 Bar Code Reader 

This internal "half-size" card (for PC/XT/ 
AT, PS/2 Model 30 and compatibles) 
combines a state-of-the-art decoding 
algorithm with the most advanced bar 
code support software available. User- 
definable attributes include selective 
auto-discrimination, 10 character pre/ 
post-amble and much more. No DIP 
switches! 




TEXT 



BAR CODES 



il! Ml I ill] .„ 

ANY FORMAT 




THE BAR TENDER® 

Label Printing Software 

Prints high quality text and bar codes 
on dot matrix and laser printers. Easy- 
to-use menu driven operation includes 
Quick Print automatic serialization and 
printing from a file. Format the labels 
any way you want, or use one of the 
pre-programmed formats: Rental item, 
Identification Card, MIL-STD 1 189A, 
AIAG VIN, HIBC and many others. 

Call us, you won't believe how easy 
it is to bar code. 



# 



Seagull Scientific Systems 

601 University Avenue, Suite 150 

Sacramento, CA 95825 

(916)386-1776 



TSRs PAST AND FUTURE 



Listing 2: 


A skeleton of the application code to create a device monitor 


function. 








KbdName 


db 


'\DEV\KBD$',0 


; keyboard logical device name 


KbdHandle 


dw 


9 


; handle from D0SM0N0PEN 

; buffers for keyboard monitor 


KbdMonln 


dw 


128,64 dup (0) 


; monitor input buffer 


KbdMonOut 


dw 


128, 64 dup (0) 


; monitor output buffer 


KbdPacket 


db 


128 dup (0) 


; holds keyboard data packet 


KbdPktLen 


dw 


1 


; length of data in KbdPacket 


ScrGroup 


dw 


? 


; current screen group number 
; open monitor connection. . . 




push 


ds 


; address of name \DEV\KBD$ 




push 


offset DGR0UP 


KbdName 




push 


ds 


; address to receive handle 




push 


offset DGR0UP 


KbdHandle 




call 


D0SM0N0PEN 


; transfer to OS/2 . 




or 


ax, ax 


; was open successful? 




jnz 


error 


; jump if open failed. 

; register keyboard monitor. . . 




push 


KbdHandle 


; handle from D0SM0N0PEN 




push 


ds 


; address of monitor input buffer 




push 


offset DGR0UP 


KbdMonln 




push 


ds 


; address of output buffer 




push 


offset DGR0UP 


KbdMonOut 




push 


1 


; request front of list. 




push 


ScrGroup 


; push the screen group number. 




call 


D0SM0NREG 


; transfer to OS/2. 




or 


ax, ax 


; was registration successful? 




jnz 


error 


; jump if registration failed. 


nextchar: 






; this loop is the actual 
; keyboard monitor. . . 

; set max length for read. 




mov 


KbdPktLen , KbdPktLen-KbdPacket 








; get next keyboard packet . . . 




push 


ds 


; address of input buffer 




push 


offset DGR0UP 


KbdMonln 




push 





; wait until data available . 




push 


ds 


; address to receive packet 




push 


offset DGR0UP 


KbdPacket 




push 


ds 


; address of length variable 




push 


offset DGR0UP 


KbdPktLen 




call 


D0SM0NREAD 


; transfer to OS/2. 




or 


ax, ax 


; did read succeed? 




jnz 


error 


; jump if read failed. 
; is thekey the hotkey? 




cmp 


byte ptr KbdPacket+3,HotKey 




jz 


ProcessKey 


; jump if it is. . . 

; Not hot key, pass it on. . . 




push 


ds 


; address of output buffer 




push 


offset DGR0UP: 


KbdMonOut 




push 


ds 


; address of keyboard packet 




push 


offset DGR0UP: 


KbdPacket 




push 


KbdPktLen 


j length of data packet 




call 


D0SM0NWRITE 


; transfer to OS/2. 




or 


ax, ax 


; was write successful? 








continued 



52 Inside the IBM PCs • BYTE 1987 Extra Edition 







Is your PC 

an endangered 

species? 



With PC technology evolving at breakneck speed, it's 
become survival of the fastest. But before you decide 
your PC, XT or even AT is doomed to extinction, 
take a look at PC Technologies' complete family of 
enhancement boards: 




386 Express™ —Our 16-MHz 80386 accelerator — 
specially suitable for LANs — will make your IBM AT two 
to three times more productive and maintain full 
software compatibility including OS/2, all at a remarkably 
low price — $995. 

286 Express™ —The first half-slot 80286 accelerator 
card and winner of AFIPS/FORTUNE Magazine's 
Hardware Product-of-the-Year Merit Award. Engineered 
to deliver two to six times more speed for your PC, XT 
or compatibles. 



286 RAMracer ™ — Two performance upgrades, one 
low price. Combines 8-MHz 80286 acceleration and up to 
2MB of EEMS/EMS- compatible expanded memory for 
your larger, demanding software applications. 

RAMpartner ™ — Batter down the DOS 640K memory 
barrier with up to 2MB of expanded memory. Ideal for 
spreadsheets, databases, windowing software . . . and as a 
companion to the RAMracer or AST and Intel expanded 
memory products. 

286 Rainbow Plus™ — Our one-slot, five-function 
board contains an Enhanced Graphics Adapter, a 10-MHz 
80286 accelerator, PLUS a Microsoft® InPort™ mouse 
interface, parallel printer port, and clock/calendar. 



To find out how easy — and economical — it is to 
take your PC off the endangered species list, see your 
nearest PC Technologies dealer. Or call us today, direct, 
at 800-821-3086 (outside Michigan) or 313-996-9690. 




PC Technologies Inc. 



^rmmb 



704 Airport Blvd., Ann Arbor, MI 48108 
313-996-9690/Telex 503589/FAX 313-996-0082, 
800-821-3086 (outside Michigan) 

Trademarks: IBM PC, XT, AT, OS/2 — International Business Machines 
Corporation; AST — AST Research Inc.; Intel — Intel Corporation; Microsoft, 
InPort — Microsoft Corporation. 



Circle 169 on Reader Service Card 



TSRS PAST AND FUTURE 





jnz 


error 


; jump if monitor write failed. 




jmp 


nextchar 


; wait for another key. 


done: 


• 




; close monitor connection. . . 




push 


KbdHandle 


; handle for monitor 




call 


DOSMONCLOSE 


; transfer to OS/2. 




or 


ax, ax 


; did close succeed? 




jnz 


error 


; jump if close failed. 



that sits on top of the keyboard data 
stream watching for three particular key 
codes. Stamper also uses the VIOPOPUP 
and VIOENDPOPUP functions to announce 
its installation and eventual exit. 

The source code for my example pro- 
gram is in the file STAMPER.ASM, and 
the module-definition file that describes 
the program's segment behavior is named 
STAMPER.DEF. [Editor's note: Both 
files are available on disk, in print, and 
on BIX. See the insert card following 
page 208 for details. The listings are also 
available on BYTEnet. See page 4. ] To 
assemble, link, and run the Stamper utili- 
ty, you will need the Microsoft OS/2 
software development kit. 

First, to assemble the file STAMPER- 
.ASM into the relocatable object module 
STAMPER. OBJ, enter the command 

[C:\] MASM STAMPER; 

Next, to build the actual program 
STAMPER.EXE, use the Microsoft seg- 
mented executable linker to combine the 
file STAMPER.OBJ, the module-defini- 



tion file STAMPER.DEF, and the dyna- 
link reference file DOSCALLS.LIB as 
follows: 

[C:\] LINK STAMPER, , , 
DOSCALLS, STAMPER 

Finally, to run the utility, you can enter 

[C:\] DETACH STAMPER 

from any protected-mode screen group. 
The utility will briefly flash a sign-on 
message, followed by a new prompt from 
the system's protected-mode command 
interpreter (CMD.EXE). While you are 
running other programs, Stamper re- 
mains resident, waiting to act upon one of 
three Alt keys. When it sees an Alt-D key 
sequence, it substitutes the current date 
as a sequence of ASCII characters; the 
current time similarly replaces an Alt-T 
key sequence. When it detects an Alt-X 
key sequence, Stamper turns off key- 
board monitoring and terminates. 

Stamper is active only for the screen 
group in which it was loaded; it is not 



aware of keys entered when another 
screen group comes to the foreground 
with the session manager. However, you 
can load a copy of Stamper into each 
screen group you want to use it with. The 
overhead of such additional copies is mi- 
nuscule, since OS/2 lets all the instantia- 
tions share the same machine code seg- 
ment. With some extra work, you could 
also modify Stamper so that a single copy 
registers itself as a device monitor for all 
the screen groups in the system. 

Summary 

The past few years have seen the emer- 
gence of an entirely new class of MS- 
DOS program, the TSR pop-up utility. 
These utilities provide MS-DOS users 
with a variety of services that they can in- 
voke with a hot key, regardless of the ap- 
plication program that is currently run- 
ning. Unfortunately, because TSRs 
under MS-DOS must often capture inter- 
rupt vectors, depend on undocumented 
system functions, or exercise direct con- 
trol over the hardware, unpredictable side 
effects are common. 

OS/2 offers programmers a variety of 
special services that will expedite the cre- 
ation of robust, powerful TSR-like utili- 
ties for protected mode and eliminate any 
need for direct hardware access. Over 
time, as the Windows/Presentation Man- 
ager graphical interface for OS/2 be- 
comes dominant, pop-up TSRs as you 
know them today might fade away in favor 
of desktop utilities like those found on the 
Macintosh. In the meantime, TSR soft- 
ware houses should have a field day with 
the vastly superior memory resources 
and multitasking facilities available from 
the OS/2 kernel. ■ 



THE $995.00 TWO-IN-ONE EPROM MULTIPROGRAMMER 



Now you can have a SET EPROM PROGRAMMER that's also a 
GANG EPROM DUPLICATOR in one low cost unit 

DESIGN ENGINEERING TOOL: SET Programmer: 16 & 32 bit words. Multiple 
EPROMs with different sets of data can be programmed in one easy opera- 
tion. STAND ALONE: 25 Keys & 32 character LCD provide User Friendly opera- 
tion to EDIT, SPLIT or SHUFFLE Data. RS232 PC Interface: Operates from a 
PC or terminal. Optional IBM PC driver. 

PRODUCTION EPROM PROGRAMMER: GANG Programmer: Duplicates up to 
8 EPROMs from RAM or Master. (Optional 16 Devices.) RAM: 64K bytes (512K 
bit), expandable to 1 Megabyte. VERSATILE: MOS/CMOS/NMOS 
EPROM/EEPROM. 24 & 28 pin Devices. Options for 32 & 40 pin EPROM 
Devices. 



Free Device Support Updates. 1 Yr Warranty. 



MASTERCARD 
OR VISA WELCOME 




Model: S125-EG 



ORDER TODAY: 
800-523-1565 

In Florida - 1-305-994-3520 

Telex: 4998369 BYTEK 

FAX: (305) 994-3615 



6VT€K 



CORPORATION 



INSTRUMENT SYSTEMS DIVISION 



1021 South Rogers Circle • Boca Raton, Florida 33487 



54 Inside the IBM PCs • BYTE 1987 Extra Edition 



Circle 42 on Reader Service Card 



This is bb x : 

the most well known 
programming language 
you've never heard of. 



If you're in the business of program- 
ming business solutions, you need to 
know about BB*. 

Throughout the world, the industry's 
best and brightest programmers are 
discovering the power that BB X brings 
to Business BASIC. 

And the numbers are growing. This 
year, over 30,000 copies of BB X are per 
forming across the United States, 
Canada, Europe, Asia ancl South 
America. 




BB* IS GOOD 

COMPANY WITH 

SOME GOOD 

COMPANIES. 



The iB x name fs> well known to some 
of the most well respected names in the" 
computer industry. 

Open Systems, Altos and State cf the 
Art have adopted the BB X language for 
their accounting packages. NCR 
selected BB X as their standard Business 
BASIC offering. 

These diverse companies, with very dif- 
ferent needs, depend on the wide-ranging 
capabilities of BB X and the availability of over 
1,000 BB X vertical application packages rang- 
ing from hospitality to waste management. 

IT MATTERS THAT 

YOU'RE RUNNING 

BB\ IT SELDOM 

MATTERS WHAT 

COMPUTER. 

The power of BB X is unique in its enhance- 
ment of the Business BASIC language. You'll 
discover; though, that there need not be 
anything special about the computer you're 
programming. 

BB X will make you a believer on most every 
major computer brand available today. And 
BB* is portable. With BB X , you have 
guaranteed portability of your application 
across all supported operating environments. 
This means a program written on a single- 
user PC can run with NO modification on 
over 35 different UNIX computers! 



BB* IS SETTING NEW 

STANDARDS WITHIN 

A 15-YEAR STANDARD. 



BB X is simply the most contemporary 
implementation of one of the most tradi- 
tional products in computer programming. 

Features like pop-up windowing on 
dumb terminals, device independent 
graphics, multi-keyed files, string arrays, 
long variable and function names, 
trigometric functions, matrix arithmetic, 
and others are simpler and swifter than 
you ever thought possible. 

There are many other examples of BB X 
excellence like its callable business 
graphics utility set that makes graphics 
presentation of your data easy. 



BB" IS THE SINGLE 

BIGGEST STEP YOU 

CAN MAKE TO 

OPTIMIZE YOUR 

BUSINESS BASIC 

LANGUAGE. 

And it begins with this step. Call us at 
BASIS Incorporated. Find out how you 
can stay in step with the thousands of 
BB X programmers and bring an entire 
new dimension to your business 
applications. 
We'll send you information on our just 
released BB X Progression/2, the 
newest, most advanced programming 
language from BASIS. 

BB X Progression/2 will do much more 
than add personality to your language. 
That's not the half of it. 

BB X Progression/2 will give your 
Business BASIC a whole new character. 

To order BB X Progression/2 

in the United States please 

call TOLL FREE directly, 

1-800-423-1394 

In Canada, 1-416-494-0472 

For technical support or more information^ 
1-505-821-4407 

To order BB* Progression/2 in 

Europe please contact one of our 

European distributors, 

EDIAS, Hans Kirchhoff, Pfingstbornstrasse 25 

6200 Wiesbaden, West Germany 

Phone: (0 61 22) 2016 Telex: 418 25 63 edia d 

PI Informatique, 8 rue Benjamin Constant 

75019 Paris, France 

Phone (1) 40.05 10.65 Telex: 214.583 

MULTISYS A S, Torgeir Vraas Plass 5A 

3044 Drammen, Norway 

Phone: (03) 83 86 05 FAX: (03) 89 02 59 

BASIS Incorporated 

RO. Box 20400 

Albuquerque, New Mexico USA 87154 

Electronic Bulletin Board 1-505-821-2933 

MCI Mail, Basis (255-8242) 

Telex 6502558242 mci 

BB*is available on most popular UNIX, DOS and 

Network environments. Please call for assistance 

with your particular requirements. 

UNIX is a trademark of Bel! Laboratories. 

NCR is a trademark of NCR Corporation. 

Altos is a trademark of Altos Computer Systems. 

Xenix is a trademark of Microsoft Corporation. 



BBxprogression/2 



TM 



Circle 29 on Reader Service Card (Dealers: 30) 



BYTE 1987 Extra Edition • Inside the IBM PCs 55 



Persoft. Emulations. Communications. Utilities. And Wow. 

Presenting some products you probably already know and one that will 
simply blow you away. 

Our SmarTerm® line of PC-based emulations of DEC® DG® and HP terminals 
have earned acclaim as being state-of-the-industry by industry leaders. Digital 
Review even proclaimed SmarTerm 240 as its 1987 Target Award winner for Best 
Connectivity Software Product. 

SmartMOVE® is the cost-efficient PC-to-the-rest-of-the- World commu- 
nications package that doubles as a precise VT100 terminal emulator. 

Referee® earned the Software Publishers Association's 1986 Excellence in- 
Software Award for Best Utility. It's also earned countless kudos from users for 
keeping their RAM-resident programs under control. 

Now there's IZE™. For you, 1ZE will open a new era of productivity at your 
keyboard. Its textbase management and organization will give you greater vision. 
When you see what our new IZE can do, you won't believe your eyes. 

So visit booth H8706 at this Fall's Comdex. If what we are showing knocks 
you out, we'll just grab the smelling salts and fan you with a spec sheet. 

In other words, don't miss what we have to show at the show. Period. 

If you miss Comdex, use inquiry codes 50 (Emulation) and 51 (IZE), visit your dealer, or phone us at 608-273-6000. 

#1987 Persoft. Inc. All rights reserved. Persoft. SmarTerm. SmartMOVE. and Referee are registered trademarks of Persoft Inc DEC and VT are trademarks of Digital Equipment Corporation. Data Ceneral is a registered trademark 
of Data Ceneral Corporation. 

56 Inside the IBM PCs • B Y T E 1987 Extra Edition 




persa/r 

BYTE 1987 Extra Edition • Inside the IBM PCs 57 





rt^!£lU?i>» 



QNX: Bend it, shape it, any way you want it. 



ARCHITECTURE If the micro world were 
not so varied, QNX would not be so suc- 
cessful. After all, it is the operating system 
which enhances or limits the potential 
capabilities of applications. QNX owes its 
success (over 30,000 systems sold since 
1982) to the tremendous power and flexibility 
provided by its modular architecture. 

Based on message-passing, QNX is radi- 
cally more innovative than UNIX or OS/2. 
Written by a small team of dedicated 
designers, it provides a fully integrated 
multi-user, multi-tasking, networked oper- 
ating system in a lean 148K. By comparison, 
both OS/2 and UNIX, written by many hands, 
are huge and cumbersome. Both are ex- 
amples of a monolithic operating system 
design fashionable over 20 years ago. 

MULTI-USER OS/2 is multi-tasking but 
NOT multi-user. For OS/2, this inherent 
deficiency is a serious handicap for ter- 



minal and remote access. QNX is both 
multi-tasking AND multi-user, allowing up 
to 16 terminals and modems to connect to 
any computer. 

INTEGRATED NETWORKING Neither 
UNIX nor OS/2 can provide integrated 
networking. With truly distributed pro- 
cessing and resource sharing, QNX makes 
all resources (processors, disks, printers 
and modems anywhere on the network) 
available to any user. Systems may be 
single computers, or, by simply adding 
micros without changes to user software, 
they can grow to large transparent multi- 
processor environments. QNX is the main- 
frame you build micro by micro. 

PC's, AT's and PS/2's OS/2 and UNIX 
severely restrict hardware that can be used: 
you must replace all your PC's with AT's. In 
contrast, QNX runs superbly on PC's and 
literally soars on AT's and PS/2's. You can 



run your unmodified QNX applications on 
any mix of machines, either standalone or 
in a QNX local area network, in real mode 
on PC's or in protected mode on AT's. 
Only QNX lets you run multi-user/multi- 
tasking with networking on all classes of 
machines. 

REALTIME QNX real-time performance 
leaves both OS/2 and UNIX wallowing at 
the gate. In feet, QNX is in use at thousands 
©f real-time sites, right now. 

DOS SUPPORT QNX allows you to run 
PC-DOS applications as single-user tasks, 
for both PC's and AT's in real or protected 
mode. With OS/2, 128K of the DOS 
memory is consumed to enable this facility. 
Within QNX protected mode, a full 640K 
can be used for PC-DOS. 
ANY WAY YOU WANT IT QNX has the 
power and flexibility you need. Call for 
details and a demo disk. 



THE ONLY MULTI-USER, MULTI-TASKING, NETWORKING, REAL-TIME OPERATING SYSTEM FOR THE IBM PC, AT, PS/2, 



Multi-User 10 (16) serial terminals per PC (AT). 
Multi- Tasking 40 (64) tasks per PC (AT). 
Networking 2.5 Megabit token ring. 

255 PC's and/or AT's per network. 

10,000 tasks per network. 

Thousands of users per network. 

2,800 task switches/sec (AT). 

Fast intertask communication 
between tasks on any machine. 



Real Time 

Message 
Passing 



C Compiler Standard Kernighan and Ritchie. 

Flexibility Single PC, networked PC's, 
single PC with terminals, 
networked PC's with terminals. 
No central servers. Full sharing 
of disks, devices and CPU's. 

PC-DOS PC-DOSrunsasaQNXtask. 

Cost From US $450. 

Runtime pricing available. 



THE HP VECTRA, AND COMPATIBLES. 

/ 




For further information or a free demonstration 
diskette, please telephone (613) 591-0931. 

Quantum Software Systems Ltd, ♦ Kanata South Business Park • 175 Terrence Matthews Crescent • Kanata, Ontario, Canada • K2M 1 W8 

UNiX is a registered trademark of AT & T Beli Labs. IBM. PC. AT. XT and PS/2. PC-QQS and OS/2 are trademarks of International Business Machines. HP and Vectra are registered trademarks of Hewlett-PacHard Company. 

Circle 190 on Reader Service Card 



INSIDE THE IBM PCs 



The Personal System/2 Model 80 takes the 32-bit road 
to more power, more memory, more speed 



The 32-bit Micro Channel 



Jon Shiell 



The 32-bit Micro Channel 
opens a window on IBM's fu- 
ture. The three 32-bit bus 
slots in the Personal System/2 
Model 80 support the 80386 
processor with 32-bit address- 
ing and 32-bit data transfers. 
The direction in which IBM' s 
personal computers are 
headed is no longer implied; it 
is defined: the 32-bit road to 
more power, more memory, 
more speed. No big sur- 
prise—but the question of 
which way IBM will go and 
how it will get there is always 
of major interest to anyone 
seriously involved with per- 
sonal computers. 

The Personal System/2 

As I write this, the new IBM 
PS/2 family consists of five 
basic machines, three of 
which are based on a propri- 
etary new bus called the 
Micro Channel. The Models 
25 and 30 are 8-megahertz 
8086-based desktop machines 
that use an IBM PC XT bus 
with three slots. The next two 
are 10-MHz 80286-based ma- 
chines: the Model 50, a desk- 
top model with four 16-bit 
Micro Channel slots, and the 
Model 60, a floor- standing 
model with seven 16-bit 
Micro Channel slots. Finally, the Model 
80 is an 80386-based floor-standing ma- 
chine available in both 16-MHz and 20- 
MHz versions with three 32-bit and four 
16-bit Micro Channel slots. 

Previous BYTE articles have covered 
the Model 30 (see "The IBM PS/2 Model 
30" by Curtis Franklin Jr., July); the 
Models 50 and 60 (see "The IBM PS/2 
Model 50" and its accompanying text box 
on the Model 60, by Richard Grehan, 
July); the 16-bit Micro Channel (see 




"Under the Covers" by Steve Ciarcia, 
August); and information on the PS/2 in 
general (see "First Impressions: The 
IBM PS/2 Computers," June). 

Because of this heavy coverage, I'll 
focus on the unique features of the Model 
80's 32-bit bus and not attempt a compre- 
hensive overview of the Micro Channel. 
Information for this article came from a 
variety of sources including the IBM Per- 
sonal System/2 Model 80 Technical 
Reference. 



The 32-bit Difference 

The Model 80's Micro Chan- 
nel differs from that of the 
Model 50 and 60 in that, in ad- 
dition to 16-bit slots, it also 
has 32-bit slots. The Micro 
Channel connector for the 32- 
bit extension extends the 16- 
bit Micro Channel connector 
to accommodate 32-bit ad- 
dressing and 32-bit data trans- 
fers (see figure 1). It connects 
to the "bottom" of the 16-bit 
extension (see figure 1 in 
"Under the Covers," August, 
page 104). 

The 32-bit extension itself 
consists of the seven control 
lines for 32-bit data (-BE0 
through -BE3, -CD DS 32, 
-DS 32 RTN, and TR 32), 
eight additional address lines 
(A24 through A31), and 16 
data lines (D16 through D31). 
Lines -BE0 through -BE3 
("byte enable" through 3) 
are used during 32-bit slave 
data transfers to tell the bus 
which bytes are to go on it. 
Line -CD DS 32 (card data 
size 32) indicates that the data 
port at the location addressed 
is a 32-bit data port. Line -DS 
32 RTN (data size 32 return) 
is a negative OR of -CD DS 32 
and provides a check for the 
channel on data-size informa- 
tion. TR 32 (translate 32) provides an in- 
dicator as to what logic is driving -BE0 
through -BE3. If TR 32 is inactive, the 
32-bit bus master is in charge of these 
lines; if it is active, the central-translator 
logic is driving them. 

continued 

Jon Shiell is a contributing editor for 
BYTE (One Phoenix Mill Lane, Peterbor- 
ough, NH 03458). He can also be 
reached o n BIX as j shiell. 



fWWHAcarcZo 



Illustration: Frank Bozzo © 1987 



B Y T E 1987 Extra Edition • Inside the IBM PCs 59 



Circle 36 on Reader Service Card 

Create Powerful 
Programs with 
Blaise TOOLS 



Whether you're an expert or a novice, you can 
benefit from using special tools to enhance your 
programs, make them reliable, and give them a 
professional look. With windows, menus, pop-up 
memory resident programs, and communications 
support, Blaise Computing offers you a wide 
range of programming tools to let you take full 
advantage of the Microsoft and Borland pro- 
gramming environments. All language support 
packages include fully commented source code, 
complete comprehensive manuals and sample 
programs. 

C TOOLS PLUS/5.0 $129.00 

Full spectrum of general service utility functions 
including: windows; menus; memory resident 
applications; interrupt service routines; interven- 
tion code; and direct video access for fast screen 
handling. Specifically designed for Microsoft C 
5.0 and QuickC. 

Turbo C TOOLS $129.00 

Windows and menus; ISRs; intervention code; 
screen handling including EGA 43-line text mode 
support; direct screen access; and memory resi- 
dent applications. Carefully crafted specifically 
to complement Turbo C. 

Turbo POWER SCREEN 

COMING SOON! General screen management; 
paint screens; block mode data entry or field- by- 
field control with instant screen access. For 
Turbo Pascal. 

Turbo POWER TOOLS PLUS $129.00 

NEW VERSION! Now supports Turbo Pascal 4.0. 
Screen, window, and menu management includ- 
ing EGA support; DOS memory control; ISRs; 
scheduled intervention code; and much more. 

Turbo AS YNCH PLUS $129. 00 

NEW VERSION! Now supports Turbo Pascal 4.0. 
Interrupt driven support for the COM ports. I/O 
buffers up to 64K ; XON/XOFF; up to 9600 baud; 
modem and XMODEM control. 

AS YNCH MANAGER $175.00 

Full featured interrupt driven support for the 
COM ports. I/O buffers up to 64K ; XON/XOFF; 
up to 9600 baud; modem control and XMODEM. 
For Microsoft C, Turbo C or MS Pascal. 

KeyPlayer $49.95 

"Super-batch" program. Create batch files which 
can invoke programs and provide input to them; 
run any program unattended; create demonstra- 
tion programs; analyze keyboard usage. 

PASCAL TOOLS/TOOLS 2 $175.00 

Expanded string and screen handling; graphics 
routines; memory management; general program 
control; DOS file support and more. For MS- 
Pascal. 

EXEC $95.00 

NEW VERSION! Program chaining executive. 
Chain one program from another in different 
languages; specify common data areas; less than 
2K of overhead. 

RUNOFF $49.95 

Text formatter for all programmers. Written in - 
Turbo Pascal: flexible printer control; user-defined 
variables; index generation; and a general macro 
facility. 

TO ORDER CALL TOLL FREE 

800-333-8087! 



THE 32-BIT MICRO CHANNEL 



_♦_ 



BLAISE COMPUTING INC. 

2560 Ninth Street, Suite 316 Berkeley, CA 94710 (415) 540-5441 



There is also a Micro Channel connec- 
tor for the matched-memory extension. 
This connector extends the 32-bit Micro 
Channel connector to accommodate 
matched-memory cycles (see figure 2). It 
connects to the "top" of the 8-bit section 
of the Micro Channel in the same position 
that an auxiliary video extension might 
occupy on a 16-bit Micro Channel. 

The matched-memory-cycle section 
consists of three signals, -MMC, 
MMCR, and -MMC CMD. Signal -MMC 
(matched-memory cycle), driven by sys- 
tem-board logic, indicates that the CPU 



is in control of the bus and can run a 
matched-memory cycle. Signal -MMCR 
(matched-memory-cycle request) is 
driven by a slave on either the 16-bit or 
32-bit channel to request a faster cycle. 
Since the 80386 is the only controlling 
device allowed to run matched-memory 
cycles, if an 8-bit or 16-bit channel 
slave— or a 32-bit slave in a nonmicro- 
processor bus cycle— requests -MMCR, 
the system will run a basic-transfer cycle. 
Signal -MMC CMD (matched-memory- 
cycle command) defines when the data on 

continued 



Rear of the System Board 



Reserved 
Reserved 
Reserved 
Reserved 

D16 
D17 
D18 

D22 

D23 

Reserved 

D27 
D28 
D29 

-BE0 
-BE1 
-BE2 

TR32 
A24 
A25 

A29 
A30 
A31 

Reserved 
Reserved 





59 
60 
61 
6? 
63 
64 
65 
66 
67 
68 
69 
70 
71 
72 
73 
74 
75 
76 
77 
78 
79 
80 
81 
82 
83 
84 
85 
86 
87 
88 
89 










nrnnnrl 






firniinrJ 










+ 19V 






(IrnnnH 










+ 5V 






nrnnnrl 










-u.RV 






ftrnnnrl 










+ 1PV 






nrnnnrl 










+ 12V 






firnnnrl 










+ 5V 






HrniinH 










Hi-mind 






B 




A 



Reserved 
Reserved 

Reserved 
Reserved 
Reserved 

D19 
D20 
D21 

D24 
D25 
D26 

D30 
D31 
Reserved 

-BE3 

-DS32RTN 

-CDDS32 

A26 
A27 
A28 

Reserved 
Reserved 
Reserved 



Figure 1: The 32-bit Micro Channel extension. 



firnnnrl 


Rear of the System Board 

B A 


RpsprvpH 




M4 
M3 
M? 
M1 
01 
02 
03 




Rfisprvfid 


-MMr.r.Mn 


-MMCR 




. Ground 

-MMT. 


Rpcipry/prl 












Chan 


neICo 


nnector 



Figure 2: The matched-memory extension to the 32-bit Micro Channel. 



60 Inside the IBM PCs • BYTE 1987 Extra Edition 



Head crashes. Software glitches. Operator errors. 

They're the grim realities of computer life in the 
80s. To protect yourself from the inevitable data 
losses, get an ArchiveXL or ArchiveXLe. 

These simple, low-cost tape backup systems 
are specially designed for the IBM PC, XT AT 
and compatibles, as well as the IBM Personal 
System/2 product families. When data is 
lost, just insert your backup data cartridge 
in the tape drive and stream the data back 
onto your hard disk. Data salvation is just a 
few keystrokes and just minutes away. All 
this protection takes up pre 
cious little space-even as 
little as a 3.5 inch floppy 
disk drive. And the 
ArchiveXL systems are 
complete with everything 




you need for maximum data protection-including 
Archive's QlCstream™ utility software. 

A final thought, the ArchiveXL and ArchiveXLe 
are based on QIC-40, the tape interchange stan- 
dard for data compatibility. That's a big Archive extra 
Face reality, you need tape backup. 
Find out today how little a lot 
of personal data protection 
costs. For more details call 
toll-free l-(800) 237-4929. 



Sure, I warrtto know more about the ArchiveXLand ArchiveXLe. 
Please send me an information kit ASAP. 



NAME 



COMPANY 



STREET 



CfTY 



STATE 



ZIP 



PHONE ( 



Mail to: Archive Corporation 
1650 Sunflower Ave. 
Costa Mesa, CA 92626 



Archive 



CORPORATION 



©1987 Archive Corporation. Archive, ArchiveXL and ArchiveXLe are registered trademarks of Archive Corpo»ation. 
IBM is a trademark of International Business Machines. 



Circle 17 on Reader Service Card (Dealers: 18) 



THE 32-BIT MICRO CHANNEL 



The Micro Channel 
uses the 80286's 
addressing scheme 
for 8-bit and 16-bit 
transfers and the 
80386's scheme for 
32-bit transfers. 



the bus is valid, but only during a 
matched-memory cycle. Together, these 
signals extend the Micro Channel to use 
full 32-bit addresses and data. 

Photos la through lc provide a tele- 
scopic view of the Micro Channel start- 
ing with an inside view of the Model 80 
(photo la), zooming in to a closer view 
that contains the Micro Channel on the 
left and shows the 80386 and optional 
80387 chips on the right (photo lb), and 
ending with a close-up of the Micro 
Channel (photo lc). Photo lc shows the 
three 32-bit channel connectors, 1,2, and 
4 (counting from the bottom); notice the 
short extension on the left end of each, 
the matched-memory extension. Also 



note the longer extension to the left in slot 
6; this is a 16-bit channel connector with 
the auxiliary video extension. 

How the 32-bit Bus Works 

The PS/2 Model 80 has special logic, 
called the address-bus translator, that lets 
16-bit devices communicate with 32-bit 
slaves, and vice versa. The 32-bit slaves 
(and 32-bit devices) use -BE0 through 
-BE3 instead of the A0 (address bit 0, the 
least-significant address bit) and -SBHE 
(system byte high enable, which indicates 
and enables data transfer on the high byte 
of the 16-bit data bus— i.e., D8 through 
D15) bus lines of the 16-bit bus. A0 and 
-SBHE are used together to distinguish 
between high-byte (D8 through D15) and 
low-byte (DO through D7) data transfers 
on the 16-bit bus. 

Sixteen-bit and 32-bit transfers use dif- 
ferent signals because the 80286 (16-bit) 
and 80386 (32-bit) system microproces- 
sors address memory differently. The 
Micro Channel uses the 80286's address- 
ing scheme for 8-bit and 16-bit accesses 
and the 80386's scheme for 32-bit trans- 
fers. Thus, no translation is required 
when a processor accesses native mem- 
ory; however, when an 80386 accesses 
16-bit memory or I/O, translation is 
needed. 

The signal TR 32 is driven inactive by 



32-bit devices; this signal is used by the ad- 
dress-bus translator along with the 
-CD DS 16 (card data size 16) and -CD DS 
32 (card data size 32) signals (which 
indicate the slave's data size) to determine 
if translation is required and which party is 
32-bit. In addition to the address-bus trans- 
lator, data-bus-steering logic is required to 
cross data between D16 through D31 and 
DO through D15 because 16-bit devices 
(and slaves) don't use the high-order 16 
data lines. 

Four different types of bus cycles are 
defined for the 32-bit Micro Channel. In 
order from fastest to slowest, they are 
matched-memory cycles, basic-transfer 
cycles, synchronous extended-transfer 
cycles, and asynchronous extended- 
transfer cycles. While the Micro Channel 
is defined as an asynchronous bus, the 
first three of these cycles are synchronous 
special cases. 

The Matched-Memory Cycle 

The matched-memory cycle is a synchro- 
nous cycle supported only by the Model 
80. It provides the most efficient data 
transfer between the 80386 and the Micro 
Channel and is this bus's equivalent to the 
PC AT's zero- wait-state memory. The 
system board's ROM, the 80386's RAM, 
and the 32-bit memory-expansion adapt- 
er follow the matched-memory-cycle 




62 Inside the IBM PCs • B YT E 1987 Extra Edition 



THE 32-BIT MICRO CHANNEL 



protocol (i.e., -MMC, -MMCR, and 
-MMC CMD). A channel slave can be 
either a memory slave or an I/O slave 
with either a 16-bit or 32-bit data bus 
width. However, 8-bit devices cannot run 
matched-memory cycles, nor can DMA. 

Two types of 80386 bus cycles are sup- 
ported on the Micro Channel for the 
Model 80: matched-memory cycles and 
basic-transfer cycles. A matched-mem- 
ory cycle occupies at least three 16-MHz 
clock cycles, or 187.5 nanoseconds. A 
basic-transfer cycle takes at least four 16- 
MHz clock cycles, or 250 ns. The chan- 
nel slave must issue an -MMCR request 
for each bus cycle if it wants a matched- 
memory cycle; if it doesn't, it will re- 
ceive a basic-transfer cycle as the default. 

If the channel slave issues an -MMCR 
request, then the system microprocessor 
responds with -MMC CMD. If the chan- 
nel slave doesn't return the -MMCR re- 
quest, the system runs a basic-transfer 
cycle. These two 80386 bus cycles can be 
mixed and matched any way you wish; 
the process is totally dynamic and is de- 
termined on a cycle-by-cycle basis. 

You can extend bus cycles until -CD 
ChRdy (channel ready) is found active. A 
memory or channel slave can set -CD 
ChRdy inactive to allow more time to 
complete a matched-memory cycle or a 
basic-transfer cycle when the default 



length of the cycle is not long enough. 

A warning from the technical refer- 
ence: "When MMC is active, matched- 
memory-cycle 32-bit and 16-bit devices 
should not use -MADE 24, A0, Al , or 
-SBHE in logic that generates -MMCR, 
-CD DS 16/32, -SEL FBK, and -CD 
ChRdy." 

Variations on a Theme 

The line -CD ChRdy is used by slave pro- 
grams to tell the Micro Channel when 
their data is ready. It may take as much as 
3 microseconds for a slave to make -CD 
ChRdy active. Data transfers other than 
matched-memory transfers generally use 
the same control sequence. 

1 . The address bus, -MADE 24 (mem- 
ory-address enable 24, which indicates 
when an extended address is used on the 
bus), M/-IO (memory/input output, 
which distinguishes a memory cycle from 
an I/O cycle), and -Refresh (if applicable) 
become active. The cycle begins. 

2. The status signals, -SO and -SI, become 
active. (Bus addresses must be valid before 
either -SO or -SI becomes active.) 

3. The -ADL (address-decode latch) sig- 
nal becomes active. 

4. In response to active -ADL, -MADE 
24, and M/-IO, the adapter returns -CD 
Sf dbk (card-selected feedback, which in- 




j^e DHHBS9BH9N Wi 



dicates, when active, that the slave ad- 
dressed by the system microprocessor is 
present at the address specified), -CD DS 
16 if the attachment can handle 16-bit op- 
eration, and both -CD DS 16 and -CD DS 
32 if it can handle 32-bit operation. 

5. In response to active -ADL, -MADE 
24, M/-IO, -SO, and -SI, the adapter 
drives -CD ChRdy inactive if the bus 
cycle is too short for the transfer and 
needs to be extended. 

6. For a Write cycle, the Write data ap- 
pears on the Micro Channel. (Various 
combinations of M/-IO, -SO, and -SI 
indicate whether a transfer is a read or 
write operation and whether it is to or 
from memory or I/O.) 

7. -CMD (command, which is used to 
determine when data on the data bus is 
valid) becomes active, and -ADL be- 
comes inactive. 

8. -SO and -SI become inactive. 

9. Address signals become inactive in 
preparation for the next bus cycle. 

10. In response to an address change, the 
attachment sets -CD Sfdbk, -CD DS 16, 
and -CD DS 32 inactive. 

1 1 . If -CD ChRdy has been set inactive, 
the system remains in this state until -CD 
ChRdy is set active. (This interval should 
not exceed 3 ms.) 

12. For a read cycle, the attachment 
places read data on the Micro Channel to 
be ready for the trailing edge of -CMD. 

13. The address, -SO, -SI, andMMOfor 
the next cycle may become active. (You 
can overlap activating the address and 
status indicators with the preceding cycle 
to minimize the impact that memory- 
access time makes on performance.) 

14. -CMD goes inactive. The cycle ends. 

The remaining three bus cycles (the 
basic-transfer cycle, the asynchronous 
extended-transfer cycle, and the synchro- 
nous extended-transfer cycle) are varia- 
tions on this theme. The basic-transfer 
cycle is the default bus cycle and is syn- 
chronous. While it requires a minimum 
of 200 ns, it requires four clock cycles of 
62.5 ns each, or 250 ns, in the 16-MHz 
Model 80. The asynchronous extended- 
transfer cycle and the synchronous ex- 
tended-transfer cycle are differentiated by 
the slave's use of -CD ChRdy. If it is an 
asynchronous cycle, the slave releases 
-CD ChRdy asynchronously and pro- 
vides the read data within 60 ns of the re- 
lease. Similarly, if the cycle is synchro- 
nous, the release is synchronous and 
occurs within 30 ns of the leading edge of 
-CMD. While the asynchronous ex- 
tended-transfer cycle requires a minimum 
of more than 300 ns, the synchronous ex- 
tended-transfer cycle is only slightly 
faster, requiring a minimum of 300 ns. 

continued 



BYTE 1987 Extra Edition • Inside the IBM PCs 63 



THE 32-BIT MICRO CHANNEL 



You could have an 
1 8-megabyte system 
with one 32-bit slot 
still available. 



A special note: If activation of the 
status indicators overlaps with the previ- 
ous -CMD cycle in the two extended 
cycles, -CD ChRdy is invalid during the 
overlap. This varies from the control se- 
quence described above. 

Details to Remember 

The 32-bit Micro Channel is a superset of 
the 16-bit Micro Channel; thus, POS 
(Programmable Option Select), arbitra- 
tion, and timing are the same (except in 
the matched-memory cycle). One point 
worth remembering: While bus masters 
on the Micro Channel can access all 
memory addresses on the system board, 
they can't access I/O addresses less than 
100 hexadecimal on the system board; 
this is true of all Micro Channel systems, 
not just the Model 80. 

While the Model 80's Micro Channel 
supports 32-bit addresses for the 32-bit 
slots, the system DMA channels on the 
Model 80 support only 24-bit addresses. 
This can be a problem if you want to use 
more than 16 megabytes of memory; all 
DMA (i.e., disk I/O and so forth) must 
be moved to low storage, then moved by 
the processor to high storage. The mem- 



ory-remapping facility may provide a way 
around this by letting you remap banks of 
memory between high and low address- 
es. That is, the operating system might 
reserve, for example, four banks of mem- 
ory between 8 megabytes and 12 mega- 
bytes for remapping; memory remapping 
in the Model 80 is in units of 1 megabyte. 
Then, when the operating system needs 
to perform DMA I/O at a high memory 
location— the bank at physical address 22 
megabytes, for example— it could remap 
that bank to one of the four banks re- 
served for remapping, perhaps the one at 
location 10 megabytes. After the I/O 
completes, the operating system moves 
the relocated bank of memory back into 
its original high-memory position. 

This problem is unlikely to arise in the 
next few years, because OS/2 and other 
80286 operating systems can address up 
to 16 megabytes, as can the 80286 itself. 
Also, the performance that the 80386 
provides, whether at 16 or 20 MHz, pipe- 
lined with one wait state, won't require 
more than 16 megabytes of memory in 
most cases. 

Future Directions? 

The three 32-bit slots in the Model 80 are 
primarily meant for memory cards; assum- 
ing the use of 1 -megabit dynamic RAM 
chips, a normal memory card will contain 
about 8 megabytes of memory. Using two 
slots for memory and up to 2 megabytes on 
the motherboard, you could have an 18- 
megabyte system with one 32-bit slot still 
available. What can you do with that third 
32-bit slot? Well, you could use it for an 



Table 1 : The Model 80 $ s internal timings. 








Model 


Model 




80-41,71 


80-111 


Processor clock speed 


16 MHz 


20 MHz 


Minimum system board RAM access time 


187.5 ns 


100 ns 


Minimum system board ROM access time 


187.5 ns 


100 ns 


Minimum system board I/O time 


500 ns 


200 ns 


Minimum system board video (8 bits) 


2000 ns 


700 ns 


Basic bus cycle 


250 ns 


200 ns 


Arbitration cycle time (minimum) 


375 ns 


300 ns 


DMA 






Minimum bus burst timing 


375+500nns 


300+400n ns 


System board burst timing 


375+625nns 


300+400n ns 


Bus master 






Minimum bus burst timing 


375+387.5n ns 


300+200n ns 


System board burst timing 


375+625nns 


300+400nns 


Refresh cycle 


8 MHz, 5% 


8 MHz, 5% 


Where n is the number of doublewords, words, 


or bytes transferred. 





expansion chassis or another 8 megabytes 
of memory . But you could also presumably 
use it for an additional 32-bit processor 
(with its own memory cache); however, the 
current Model 80 doesn't have the bus 
bandwidth to support this. 

Let's assume we have a Model 80-71; 
that is, a 16-MHz 80386. The 80386 runs 
pipelined with one wait state; according to 
Intel, that gives a bus utilization of about 86 
percent. RAM Refresh takes less than 5 
percent of the bus (see table 1), leaving 
about 10 percent of the bus bandwidth 
available for DMA transfers when the pro- 
cessor is 1 00 percent busy. Ten percent of a 
second is 100 ms for DMA each second. 
Since the processor can use the 300-ns ar- 
bitration time to access memory, as can 
RAM Refresh, we will count only DMA 
transfer time. At 400 ns per transfer, this 
gives 100 ms/400 ns or 25,000 DMA 
transfers per second; this would be about 
50K bytes per second if we used 16-bit 
transfers. If you assume an I/O rate of 90K 
bytes per second as being two-thirds 16-bit 
transfers and one-third 8-bit transfers, you 
get 300 ms/400 ns or a total of 75,000 
transfers per second. That's 300 ms of each 
second for DMA transfers, plus 50 ms for 
RAM Refresh, leaving 650 ms for the 
processor. 

If we have 1 00 percent processor utili- 
zation, the 80386 uses 86 percent of the 
bandwidth; so if only 65 percent of the 
bandwidth remains, the 80386 can run at 
only about 75 percent utilization. Under 
normal operation, a system microproces- 
sor runs nearer to 75 or 80 percent than 
100 percent busy anyway. However, this 
exercise points out an interesting fact: 
The Micro Channel doesn't have the 
bandwidth to support multiple processors 
unless all the processors use caches to cut 
the required bus bandwidth. 

If you have a 64K-byte direct-mapped 
buffered store through cache using a 16- 
byte line, you will have a hit rate of about 
96 percent, assuming four reads for every 
write. The 80386's 86 percent bus utili- 
zation in this case decreases to about 33 
percent; that is, 0.86 x (4 x 0.04 x 
0.80 16-byte reads + 0.20 4-byte writes) 
= 33 percent, where the 4 equals the four 
32-bit reads required to fetch a line, and 
the 0.04 is the miss rate (1 minus the hit 
rate of 0. 96). I assumed the memory can 
burst matched-memory cycles. This ig- 
nores the effects of device bursting and 
makes the processor wait till memory is 
free. Thus, the Micro Channel appears to 
have enough bandwidth to support up to 
two processors and their I/O. If future 
PS/2 systems use a cache for the system 
processor, multiprocessor systems will 
be much more viable— and I suspect that 
they won't have the 24-bit DMA limit that 
the current Model 80 has. ■ 



64 Inside the IBM PCs • B Y T E 1987 Extra Edition 



lmprove¥)iirW)rd 
ProcessorWith Hercules. 



Now your word processor can have full dis- 
play and printing flexibility without slowing 
down. The secret is the exclusive Hercules 
graphics card mode called RamFont. Which isn't 

really graphics at all. 



Hercules Graphics Card Plu 



Graphics 



Hercules Graphics Cam Flu 
H ercules Graphics €&rd Flu 
HepsuXeo rpenini?ff ?*pB HXu, 



li[H<k"il | JA'»ii] 



1 1 '1 i Li IV i 1 J 



Hercules Graphics Card piu 

Hercules Graphics Card Plu 



You see, graphics 
mode is slow. That's 
why most IBM com- 
patible word proces- 
sors run in fast, but 
limited text mode 
(they can only dis- 
play 256 ASCII 
characters). 



No Compromises 
with RamFont. 

Some choice. Slow 



RamFont lets mostpopular word 
processors display italics, subscripts, 
superscripts, foreign languages, 
different font styles and symbols etc. 
at lightning speed. 

down software by using graphics mode to dis- 
play italics, subscripts, superscripts, large char- 
acters, different fonts, etc. Or forget all that in 
favor of speedy text mode. 

Hercules solved the problem without compro- 
mise some time ago ... almost 200,000 graphics 
cards ago to be specific. Because in addition to 
text mode and 720x348 graphics, we include 
RamFont. Today's standard for text-based pro- 
grams. RamFont gives the flexibility of graphics 
at the speed of text by displaying 3072 software 
defined characters instead of ASCII's limited 
256. Available in two 
versions for your 
PC: the Hercules 
Graphics Card Plus 
(for monochrome 
TTL monitors) 
and the Hercules 
InColor Card 
(for "EGA-type" 
and multi-synchro- 
nous monitors). 

Improve Today's 
Software. 

RamFont runs 
Microsoft Word 
complete with its excellent on-screen display 
of attributes and fonts. But there's a difference 
It's up to four times faster than the graphics 
mode in which it was written. Only Hercules 
cards let Lotus Manuscript display boldface, 



italics, subscripts, superscripts, and many 
equations in text processing mode. And Ram- 
Font expands Broderbund ForComment's 
viewing area to a full 80x43. 

Programs like Design Enterprise's Alexander 
use it to display symbols (musical notes and for- 
eign languages) which, before RamFont, were 
possible only in the much slower graphics mode. 
Other programs including Nota Bene, Word- 
MARC, and Qalam all 
have optimized dis- 
plays with RamFont. 

In fact, every 
word processor can 
run better with Her- 
cules. Independent 
add-on packages 
(TurboFonts, the 
Enhance Star series, 
etc.) let word pro- 
cessors like Word 
Perfect, Multimate, 



RAMFONT" 

i\Fcnt node of the Hercules Cards 
ils and paerfsl i 



fTOPlde facilities for software to i 
acanplisfc in RanFmt node shot snd to 
require a great deal of effort In greyUcs i 

FROM HERCULES 

Hspe <ps rope t&p&m 08 9ono specie* top 

rq&WT pole, Horifc Tt)CT fuepe «pe SiWtpevi 

siCe yippiviqv oqcpiiy rqe ovpeev. 

LOOKS LIKE THIS 

Social I 1 - -7 3 duNCtnrs j > ■ | 1 

+ 1 * "r lite ffcesa • I are treated 

Jos* Ilka « a - text mote. 




Hercules Graphics 
Card Plus 

(For monochrome moni tors) I 
Includes the three modes 
your software needs most: 

• StandardTkrt — For thous- 
ands of text-based programs 

• Hercules 720x348 graphics — 
highest popularly supported standard 

• Hercules RamFont — 3, 072 software 
definable characters improve many popular 
software programs. (Call for the latest list.) 



Ibmorrow's software will display 
large and small characters in an 
almost infinite variety of styles 
at speeds heretofore impossible. 

WordStar, and Displaywrite take advantage of 
the same sort of display and printing flexibility. 

Improve The Software of Tomorrow. 

WYSIWYG for underlining, italics, subscripts, 
font display, etc. is just the beginning. A whole 
new generation of word processors will use 
RamFont to mix a nearly infinite variety of fonts 
in different sizes on-screen at sizzling text speed. 
Which will make them look like, but run much 
faster than most of today's desktop publishers. 
So, for better word processing, ask for 

Hercules with RamFont. It's 
the most compatible way to 
improve your writing. 

Hercules InColor Card 

(For multi-synchronous and enhanced 
color u EGA-type" monitors.) 
Runs all Hercules monochrome software in 2 
colors, most popular software in up to 16 colors 
selected from a palette of 64. 

• Standard Text — All programs run in 2 or more colors. 

• Hercules 720x348 graphics in up to 16 colors — 15% higher than EGA. 

• Hercules RamFont — 3,072 software definable characters in 16 colors up 
to 12,288 in 2 colors. 

For more information call Hercules toll-free at: 
1-800-532-0600 Ext. 304. In Canada, 1-800-323-0601 Ext. 304. 

Hercules 

Wferunyour software betta; 



Hercules Computer lechnology, 921 Parker Street, Berkeley, California 94710; lech Support: (415) 5400749; Sales: (415) 540 0212. Hercules, RamFont and InColor are trademarks of 
Hercules Computer lechnology. Other products are trademarks of their respective holders. © 1987 Hercules Computer lechnology. 

Circle 98 on Reader Service Card (Dealers: 99) BYTE 1987 Extra Edition • Inside the IBM PCs 65 









P&PD> 



THE 

IMPROVED 

VGA 

Extending across barriers of 
graphics incompatabilities, ATI 
introduces a VGA improved 
performance card - VIP. 
VIP delivers the IBM PS/2 VGA 
standard to IBM PC/XT/ AT and 
Model/30 users, providing an 
upgrade path to the 
outstanding world of VGA 
graphics. 

Totally compatible with the ATI 
EGA WONDER, users have the 
unique ability to display EGA, 
Color/Graphics and Hercules 
software on monochrome, RGB 
and EGA monitors. 

• Compatible to IBM Video 
Graphics Array (VGA). All 17 
modes. 

• Runs EGA/CGA/Hercules & 
132 column software on IBM 
PS/2 Analog 1 , Multisync, 
EGA, RGB, TTL monochrome, 
PC Portable, Compaq 
Portable 2 monitors. 

• Sof tsense automatic mode 
switching. 

• Automatic analog monitor 
detection. 

• High resolution 800 x 560 
graphics for Multisync 
monitors with drivers 
supplied for Windows, Gem, 
Ventura, Autocad. 



ooc 




Call today at (416) 756-071 1 for 
more information. 

1 132 Colums not available on IBM PS / 2 Analog 
Monitors 

2 Compaq via optional Compaq Expansion Module 

Trademarks: IBM, PS/2. Model 30. VIDEOGRAPHICS 
ARRAY. VGA. EGA. CGA. MDA - International 
Business Machines Corp.: HERCULES - Hercules 
Multisync - NEC Hor 



Corp.: WINDOWS - Microsoft 



utei 



<** IS* A 



v 



Circle 23 on Reader Service Card 



TECHNOLOGIES INC. 



. . . ■ . - : 



INSIDE THE IBM PCs 



The ins and outs of the PS/2 machines ' 
video systems 



PS/2 Video Programming 



Richard Wilton 



The IBM PS/2 series intro- 
duces two new video subsys- 
tems, the multicolor graphics 
array (MCGA) and video 
graphics array (VGA). This 
article is an overview of the 
MCGA and the VGA from a 
programmer's point of view. 
If you are already familiar 
with older video adapters, 
such as the CGA, EGA, or 
Hercules cards, this article 
will point out the similarities 
and differences between the 
PS/2 video subsystems and 
previous IBM video adapters. 
If you are new to video hard- 
ware programming, you can 
use the examples in this article 
as a focus for further explora- 
tion of the PS/2 hardware. 

Unlike the IBM PC, XT, 
and AT, into which you must 
install a separate card that 
supports the necessary hard- 
ware to drive a video display, 
all the PS/2s are equipped 
with a built-in video subsys- 
tem on the motherboard. The 
Model 30 comes with the 
MCGA, while the Models 50, 
60, and 80 use the VGA. 

For compatibility (and, no 
doubt, in hopes of selling lots 
of hardware), IBM also offers 
a VGA adapter that imple- 
ments the VGA subsystem on 
a card for the XT, AT, or PS/2 Model 30. 

Monitors 

The MCGA and VGA differ from previ- 
ous IBM video adapters in that both re- 
quire that you use an analog monitor in- 
stead of a digital monitor. Adapters such 
as the CGA and the EGA use digital 
monitors in which the RGB color signals 
generated by the adapter are digital sig- 
nals (on or off) . This limits the number of 
different colors that the subsystem can 




display. For example, IBM's enhanced 
color display, which is driven by six RGB 
signals as generated by an EGA, can 
display a total of 64 (2 6 ) different colors. 
In contrast, the PS/2-compatible 
monitors use RGB signals with voltage 
levels that are continuously variable in- 
stead of simply on or off. Because the dis- 
played brightness of a color corresponds 
to the voltage level of the color drive sig- 
nals, an analog monitor can display a 
much larger variety of colors. 



IBM offers one mono- 
chrome and two color moni- 
tors for use with the MCGA 
and the VGA. You can use a 
monochrome or color monitor 
with either video subsystem. 
You can also use EGA-com- 
patible monitors with analog 
capability, such as the NEC 
MultiSync and Sony Multi- 
Scan monitors, with the 
MCGA and VGA. 

Compatibility 

Programs that run on the CGA 
can run unchanged on the 
MCGA, even if they bypass 
the video BIOS and program 
the hardware directly. Also, 
because the PS/2 Model 30 
has a PC-compatible bus, a 
monochrome display adapter 
or Hercules adapter can co- 
exist with the MCGA in the 
PS/2 Model 30. 

The VGA is similar in its 
programming interface to the 
EGA. Its control ports and 
buffer addressing are EGA- 
compatible, so programs that 
run on an EGA generally run 
on a VGA as well. The VGA is 
compatible enough with the 
EGA at the hardware level that 
the VGA can usually run ill- 
behaved programs that access 
the EGA control registers 
directly. 

From a programmer's perspective, 
there is not much resemblance between 
the MCGA and the VGA. The I/O port 
assignments in the MCGA and VGA dif- 
fer significantly. So does the layout of 

continued 

Richard Wilton (6236 West Sixth St. , Los 
Angeles, CA 90048) is author of The Pro- 
grammer's Guide to PC and PS/2 Video 
Systems, which is due out in November. 



Illustration: Kevin Short © 1987 



BYTE 1987 Extra Edition • Inside the IBM PCs 67 



PS/2 VIDEO PROGRAMMING 



video RAM in the two subsystems. A 
program that bypasses the video BIOS to 
control the hardware directly will prob- 
ably not run on both the MCGA and the 
VGA unless it contains special code for 
programming each subsystem indepen- 
dently. 

Documentation 

The programming interface to PS/2 video 
hardware is documented in the IBM tech- 
nical reference manuals for the Models 
30, 50, and 60. The video BIOS is 
covered by a separate set of IBM refer- 
ence manuals, the Personal System/2 and 
Personal Computer BIOS Interface Tech- 
nical Reference. Obviously, this article 
does not cover all the details of the video 
hardware implementation. If you need to 
understand the hardware or firmware in 
detail, you should obtain the appropriate 
IBM technical manuals. 

The MCGA 

The heart of the MCGA circuitry lies in 
two proprietary gate arrays: the memory- 



controller gate array, which incorporates 
the functions of a CRT controller, and the 
video-formatter gate array, which con- 
trols video mode selection and color-at- 
tribute decoding. 

You can program the memory control- 
ler through a set of 8-bit registers (see 
table 1) mapped to I/O ports 3D4 and 
3D5 hexadecimal. [Editor's note: For the 
remainder of this article, addresses will 
be in hexadecimal.] As on the CGA, you 
access the registers by first writing the 
register number to the port at 3D4, and 
then writing or reading the specified reg- 
ister at 3D5. Unlike the CGA, however, 
you can read and write all the memory- 
controller registers. This is a handy fea- 
ture if you are debugging programs, al- 
though it's not a good idea to rely on it if 
you are concerned about maintaining 
CGA compatibility. 

The first 16 memory-controller regis- 
ters are analogs of the registers on the 
Motorola 6845, the CRT controller chip 
used in the CGA. This means that CGA- 
compatible programs that access these 



Table 1: 


MCGA 


memory-cor 


xtroller registers. Registers through OF 


hexadecimal are 


comparable 


to those in the CGA 's CRT controller. 


Register 






Function 


number 















Horizontal total 


1 






Horizontal displayed 


2 






Start horizontal sync 


3 






Sync pulse width 


4 






Vertical total 


5 






Vertical total adjust 


6 






Vertical displayed 


7 






Start vertical sync 


8 






(Reserved) 


9 






Scan lines per character 


0A 






Cursor start 


OB 






Cursor end 


OC 






Start address high 


0D 






Start address low 


0E 






Cursor location high 


OF 






Cursor location low 


10 






Mode control 


11 






Interrupt control 


12 






Character generator, sync polarity 


13 






Character-generator pointer 


14 






Character-generator count 



Listing 1: Video mode selection using the video BIOS. 



mov ah , 

mov al,VideoModeNumber 



AH = INT lOh function § 
AL= llh (640x480 two-color) 
12h (640x480 16-color) 
13h (320x200 256-color) 



int lOh ; Call video BIOS 



registers directly can also run on the 
MCGA. Because the default horizontal 
and vertical CRT timing parameters used 
on the MCGA differ from those used on 
the CGA, you might want to write-protect 
the first seven registers so that CGA- 
compatible programs that attempt to up- 
date these registers do not inadvertently 
disrupt crucial CRT timing signals. Bit 7 
of the mode-control register (register 
1 Oh) is the write-protect bit for the timing 
registers. 

The remaining memory-controller 
registers control video mode selection 
and the alphanumeric character genera- 
tor. These registers do not exist on the 
CGA. They support functions that are 
similar to what is available on the VGA: 
additional graphics modes and RAM- 
loadable alphanumeric character sets. 

The video formatter supports three 
CGA-compatible control registers. The 
mode-control register (I/O port 3D8) 
controls video mode selection. The 
color-control register (port 3D9) con- 
trols palette and graphics mode back- 
ground-color selection. The status regis- 
ter (port 3 DA) is a read-only register 
whose contents indicate the status of the 
CRT's horizontal and vertical timing sig- 
nals. All three of these registers are com- 
patible with the analogous registers on 
the CGA. 

In addition to the six video modes sup- 
ported by the CGA, the MCGA offers a 
640 by 480 two-color graphics mode 
(video BIOS mode 1 1 H) and a 320 by 200 
256-color graphics mode (BIOS mode 
1 3H). You can set up both new modes, as 
well as all the CGA-compatible modes 
using INT lOh function (see listing 1). 

New Features 

Two features of the MCGA are of special 
interest to programmers. One is that the 
vertical resolution of both alphanumeric 
and graphics modes is greater than on 
previous IBM video adapters. The other 
is that the MCGA can display up to 256 
different colors at one time out of a possi- 
ble 262 , 1 44 (256K) colors . 

The vertical resolutions of the default 
BIOS video modes are listed in table 2. In 
alphanumeric modes, the vertical resolu- 
tion is 400 scan lines— twice that of the 
CGA and better than the EGA's 350-line 
"enhanced" modes. Since the BIOS still 
displays 25 rows of characters in alphanu- 
meric modes, the vertical size of each 
displayed character is 16 scan lines. 
These higher-resolution characters are 
sharp and easy to read. 

When the MCGA emulates the CGA 
graphics modes (640 by 200 two-color 
and 320 by 200 four-color), it doubles the 
vertical size of pixels so that each is two 
scan lines high. Thus, although the CGA- 



68 Inside the IBM PCs • BYTE 1987 Extra Edition 



PS/2 VIDEO PROGRAMMING 



compatible graphics modes use the same 
resolution in terms of pixels, the dis- 
played resolution is still 400 lines, so 
these modes have a sharper appearance 
on the MCGA than they do on a CG A. 

Another feature of both the MCGA and 
the VGA is expanded color display capa- 
bility. This is provided by a digital-to-an- 
alog converter (DAC) that generates the 
analog RGB signals used to drive the 
PS/2 monochrome and color monitors. 
(The monochrome monitor responds 
only to the green color signal; the color 
monitors recognize all three.) 

The video DAC uses a set of 256 eigh- 
teen-bit internal registers, each of which 
specifies an RGB combination. Each of 
the three primary colors is allotted 6 bits 
of each color register; the DAC converts 
each 6-bit value to a corresponding ana- 
log voltage level in the signals it outputs 
to the monitor. Thus, the video DAC can 
produce any of 64 color intensities for 
each of the three primary colors in a color 
register, thereby generating 256K (64 3 ) 
color combinations. Since there are 256 
video DAC color registers, the video sub- 
system can display any 256 of the 256K 
color possibilities at one time. 

Video BIOS 

The video BIOS on the Model 30 pro- 
vides the same set of functions as the 
motherboard ROM BIOS on the PC. The 
programming interface is the same: You 
access all video BIOS functions through 
interrupt lOh and pass parameters to the 
BIOS routines in the CPU's registers. 

Also, several new INT lOh functions 
are available in the Model 30, as well as 
the other models in the PS/2 series (see 
table 3). IBM has expanded the INT lOh 
function lOh to provide access to the 
video DAC color registers. Function 12h 
has several new subfunctions that let you 
vary the default actions of other BIOS 
routines. For example, you can call INT 
lOh function 12h with the BL register set 
to 3 lh to enable or disable default palette 
loading when the video mode is changed. 

INT lOh functions lAh and lBh are 
new to the PS/2 series. Your programs 
can call these INT lOh functions to deter- 
mine the state of the video subsystem. A 
call to function lAh returns the video 
subsystem's display combination code, 
which indicates what type of monitor is in 
use. Function lBh returns a table whose 
contents describe the current state of the 
video BIOS: the current video mode, ac- 
tive video page, amount of video RAM 
available, and so on. These functions are 
useful in programs designed to run in 
more than one video mode, as well as in 
pop-up RAM-resident programs that 
must determine the current video state to 
produce appropriate video output. 



Alphanumeric-Mode Programming 

Despite the MCGA's improved resolu- 
tion, programming in alphanumeric 
modes is virtually the same as on the 
CGA. The important difference is that 
the alphanumeric character generator on 



the MCGA can display user-defined 
characters. (The EGA, VGA, Hercules 
Graphics Card Plus, and Hercules In- 
Color Card also have this capability.) 
The MCGA's alphanumeric character 

continued 



Table 2: New BIOS video modes on the MCGA and VGA 




Mode 




MCGA 


VGA 


number 











40 by 25 1 6-color alphanumeric 








(320 by 400 resolution) 


X 







40 by 25 1 6-color alphanumeric 








(360 by 400 resolution) 




X 


2 


80 by 25 1 6-color alphanumeric 








(640 by 400 resolution) 


X 




2 


80 by 25 1 6-color alphanumeric 








(720 by 400 resolution) 




X 


11H 


640 by 480 two-color graphics 


X 


X 


12H 


640 by 480 1 6-color graphics 




X 


13H 


320 by 200 256-color graphics 


X 


X 



Table 3: New INT lOh functions on the MCGA and VGA. 



Function 1 0h: Color-palette interface 

AL=3: Toggle alphanumeric intensity/blink state 

AL=7: Read individual palette register (VGA only) 

AL=8: Read overscan (border color) register (VGA only) 

AL=9: Read all palette registers and overscan register (VGA only) 

AL= 1 0h: Set individual video DAC color register 

AL= 1 2h: Set block of video DAC color registers 

AL= 13h: Select video DAC color page (VGA only) 

AL= 1 5h: Read individual video DAC color register 

AL= 1 7h: Read block of video DAC color registers 

AL= 1 Ah: Read video DAC color-page state (VGA only) 

AL= 1 Bh: Perform gray-scale summing 

Function 1 1h: Character-generator interface 

AL=4: Load 8 by 1 6 alphanumeric characters 

AL= 14h: Set alphanumeric mode using 8 by 1 6 characters 

AL=24h: Load 8 by 1 6 graphics characters 

Function 12h: Alternate select 

BL=30h: Select vertical resolution for alphanumeric modes (VGA only) 

BL=31 h: Enable/disable default palette loading 

BL=32h: Enable/disable video addressing 

BL=33h: Enable/disable default gray-scale summing 

BL=34h: Enable/disable alphanumeric cursor emulation (VGA only) 

BL=35h: Display-switch interface 

Function 1 Ah: Display combination code 

AL=0: Read display combination code 
AL= 1 : Write display combination code 

Function 1Bh: Functionality/state information 

Function 1Ch: Save/restore video state (VGA only) 

AL=0: Return state buffer size 
AL= 1 : Save video state 
AL=2: Restore video state 



B Y T E 1 987 Extra Edition • Inside the IBM PCs 69 



PS/2 VIDEO PROGRAMMING 



Listing 2: 


Establishing 


an 80 


by 50 alphanumeric mode on the MCGA. 


; load video BIOS 8x8 characters into alphanumeric character generator 


mov 


ax, 1102h 




; AH = INT lOh function number 
; AL = 8x8 character-set load 


mov 


bx,0 




; BX = block to load 


int 


lOh 




; load 8x8 characters into RAM 


mov 


ax,1103h 




; AH = INT lOh function number 
; AL = character-generator load 


mov 


bx,0 




; BX = blocks to load 


int 


lOh 




; load 8x8 characters into 
; character generator 


; program CRT controller to display 8x8 characters 


mov 


dx,3D4h 




; DX = MCGA I/O port address 


mov 


axJ09h 




; AL = 9 (register number) 
; AH = 3 (value for register) 


out 


dx,ax 




; update scan-lines register 


mov 


al,0Ah 




; AL = OAh (register number) 


out 


dx,ax 




; update cursor-start register 


mov 


al,0Bh 




; AL = OBh (register number) 


out 


dx,ax 




; update cursor-end register 


; update status variables in video BIOS data segment 


mov 


ax,40h 






mov 


ds,ax 




; DS -> video BIOS data segment 


mov 


word ptr ds 


[4Ch] , 80*50*2 ; update CRT_LEN 


mov 


byte ptr ds 


[84h] 


, 49 ; update ROWS 


mov 


word ptr ds 


[85h] 


,8 ; update POINTS 



AOOOiOOOO 
0050 
OOAO 

9560 
95 BO 


Memory 


w 


Display 


lineO 
line 1 

line 2 

line 478 
line 479 






w 


^ 


^ 




/ 




"J 













Figure 1: A video-buffer map in 640 by 480 two-color graphics mode. 



A000:0000 
0140 
0280 

F780 
F8C0 


Memory 


^ 


Display 


lineO 
line 1 

line 2 

line 198 
line 199 






"w 




w 






J 




s 













Figure 2: A video-buffer map in 320 by 200 256-color graphics mode. 



generator can display characters from any 
of four different 256-character tables de- 
fined in video RAM. 

To make the MCGA's character gener- 
ator display one of these character sets, 
you first load the bit patterns that define 
the characters into video RAM. Then you 
program the character generator to copy 
the bit patterns from video RAM into one 
of its two internal character-definition 
tables. (These character-definition tables 
are called font pages in the IBM technical 
literature.) 

It is easy to use the MCGA's RAM- 
loadable character sets on the MCGA to 
display characters that are smaller than 
the default 16-scan-line characters. In 
listing 2, the program calls the video 
BIOS to load the default graphics-mode 
character definitions— in which charac- 
ters are only eight lines high— for use by 
the alphanumeric character generator. 
The code then reprograms the MCGA's 
memory controller to display only eight 
scan lines in each row of characters; the 
result is 50 rows of 80 characters each. 

Apart from supporting RAM-loadable 
character sets, the MCGA replicates 
almost all the CGA's capabilities. How- 
ever, the MCGA is not troubled by prob- 
lems with display interference in alpha- 
numeric modes. On the CGA, you must 
carefully synchronize CPU accesses to 
the video RAM with horizontal and verti- 
cal retrace intervals in the display refresh 
cycle. If you don't, you might see random 
patterns of interference or snow on the 
screen each time a program accesses the 
video buffer. The hardware design of the 
MCGA is such that this sort of display in- 
terference does not occur. 

Surprisingly, the MCGA cannot gen- 
erate a colored border. In alphanumeric 
modes on the CGA, you can display a 
border in any of 16 colors selected by 
programming the color-select register 
(I/O port 3D9). On the MCGA, you can 
still program the color-select register, but 
the MCGA does not display a border, re- 
gardless of the value you store in the 
register. 

Graphics-Mode Programming 

In CGA-compatible 640 by 200 two- 
color and 320 by 200 four-color modes, 
the MCGA emulates the CGA. The sys- 
tem maps pixels with a two-way inter- 
leave in the video buffer at B800:0000, 
just as they are mapped on the CGA. 
Video-buffer addressing is different, 
however, in 640 by 480 two-color and 
320 by 200 256-color modes. 

The video-buffer map in both 640 by 
480 two-color and 320 by 200 256-color 
modes starts at A000:0000. Both modes 
map pixels linearly in the buffer from left 

continued 



70 Inside the IBM PCs • BYTE 1987 Extra Edition 



Order Status, 
Technical & Other 
Info. (602) 246-2222 



Call for programs 
not listed 



WAREHOUS 



DATA 
PRODUCTS 



SPECIAL 

MICROSOFTWORD4.0 

$195 



TOLL-FREE ORDER LINE 1-800-421-3135 



FREE SOFTWARE! FREE SOFTWARE! FREE SOFTWARE! 

Purchase over $100 and receive one of these disks absolutely FREE! Purchases over $250 get two free disks, over $400 get three, or 
get all four disks when your purchase is over $500! 1) MIXED BAG — A great assor ment of utilities and games all packed on one disk. 
2) PC- WRITE — Try this famous feature packed word processor. It's a winner! 3) FONT-SET — Lets you set popular fonts I i ke bold, 
underline, etc. on most late model printers from Citizen, Epson, NEC, Okidata, Panasonic, Star, Toshiba, etc. You can even useyour 
printer like a typewriter! 4) ABC-LIST — Great mailing list program! Sort on any field, do qualified searches, print repontsand mailing 
labels, and more! 



— SOFTWARE — 

ACCOUNTING 

Cyma Call 

Dae Easy Acct $39 

Dae Easy Payroll 29 

Dollars & $ense 94 

In House Acct 39 

Managing Your 
Money 3.0 117 

COMMUNICATION 
PROGRAMS 

Carbon Copy Plus 115 

Crosstalk XVI 89 

Crosstalk MK4 110 

Remote 89 

Smartcom II 79 

DATA BASE 
MANAGERS 

Clipper 379 

Condor 3 325 

DBase III Plus Call 

DB-XL 82 

Fox Base Plus 202 

Genifer 194 

Paradox 2.0 398 

PFS: Pro File Call 

Powerbase 169 

Q&A 207 

Quickcode Plus 138 

Quickreport 138 

Quicksilver 295 

Revelation 464 

R Base System V Call 

Reflex 81 

Relate & Report 112 

VPInfo 48 

DESKTOP 
PUBLISHING 

Pagemaker 479 

PFS: First Publisher .... 59 
Ventura Publisher 489 

GRAPHICS 

Chartmaster Call 

Diagram Master Call 

Easy Cad 109 

Energraphics 2.01 294 

Generic Cad 59 

In-A-Vision 275 

Microsoft Chart 3.0 ... . 229 

Newsroom Pro 65 

Printshop 33 

Prodesigh 2 148 

INTEGRATED 

Ability 56 

Ability Plus Call 

Enable Call 

Framework II Call 

Smart System 429 

Symphony Call 

LANGUAGES 

Lattice C Compiler 242 

Microsoft C Compiler. . 249 
Microsoft Fortran 255 



Microsoft 

Macro Assembler . . . $84 

Microsoft Pascal 166 

Microsoft Quick Basic . . 55 

Microsoft Quick C 55 

Ryan McFarlan 

Fortran 305 

Ryan McFarlan 

Cobol 479 

Turbo Basic 55 

Turbo C 55 

Turbo Pascal 55 

Turbo Pro log 55 

MULTI-USER 
SOFTWARE 

Fox Base 299 

Word Perfect 310 

Word Perfect 

Modules ea75 

Microsoft Word Call 

PROJECT MANAGER 

Microsoft Project 219 

Super Project Plus Call 

Timeline 2.0 242 

Total Havard Man. 2 . . . Call 

SPREADSHEET 

Hal 115 

Lotus 1-2-3 Call 

Sitk 149 

Spreadsheet Auditor ... 82 

Supercalc 4 Call 

VP Planner 48 

UTILITIES 

Copy II PC 19 

Copywrite 39 

Cubit 30 

Deskview 2.0 72 

Direct Access 49 

Eureka 95 

Fastback 85 

Formtools 56 

Graph in the Box 55 

Mace 55 

Microsoft Windows 55 

Norton Advanced 75 

Norton Utilities 48 

PC Tools 19 

Prokey4.0 70 

Q DOS 49 

Rightwriter 75 

Sidekick 55 

Sideways 39 

Sqz Call 

Superkey 55 

Turbo Lightning 55 

XTree 25 

WORD PROCESSING 

Microsoft Word 4.0... . 195 
Multimate 

Advantage II Call 

Volkswriter 3 139 

Webster Spellcheck 37 

Word Perfect 195 



Word Perfect 

Executive $109 

Word Perfect Library ... 59 

Wordstar 162 

Wordstar Pro 233 

Wordstar 2000+ 206 

- HARDWARE - 

ACCESSORIES 

Brooklyn Bridge 88 

Copy II PC Bd 75 

Curtis Ruby 59 

Mach III Joystick 36 

Masterpiece 88 

Masterpiece + 99 

150 Watt 

Power Supply 69 

BOARDS 
AST 

Advantage Premium . . . 422 

Sixpac Premium . . Call 

Sixpac 145 

HERCULES 

Color Card 145 

In Color Card 302 

Graphics Plus 182 

INTEL 

Above PC 64K 225 

Above 286 319 

Orchid Tiny Turbo 389 

SUNTEK 

IO XT 65 

IOAT 65 

TALLTREE 

J Ram 3 ATP Call 

COMPUTERS 



AZ386 

80386-16 Micro 
Processor, 1 MB of 
Ram.Teac 1.2 MB 
disk drive, 220 watt 
power supply, 6 layer 
mother board, RT 
keyboard $2995 



AZ TURBO AT 

IBM AT Compatible, 
512K.6&8MHZ, 
keyboard, graphics 
card, 220 watt power 
supply, MS/DOS 3.2 
GW Basic $1025 



AZ TURBO XT 

135 watt power 
supply, One 360K 
drive, 640K, 
keyboard $519 



AZ10 

150 watt power 
supply, dual 360K 
drive, 10 MHZ mother 
board, 640K, 
keyboard $670 



MONITORS 

AMDEK 

410 Amber $157 



AST 286 

PREMIUM 

COMPUTER 

51 2K, expandable to 
2ME on the system 
board, RT enhanced 
style keyboard, paral- 
lel, serial and clock, 
1.2 MB floppy disk 
drive, 7 expansion 
slots, two 32 bit 
fastram slots, DOS 3.1 
& Basic 1 year 
warranty Call 



EGA BOARDS 

ATI Ega Wonders 209 

NecGBI Call 

Paradise Auto480 155 

Quad EGA Plus 295 

Vega Deluxe 269 

EGA MONITORS 

AMDEK 722 455 

Casper 410 

NEC 

Multisync 559 

Multisync Plus Call 

HARD CARDS 

AZ 20 MB 425 

AZ 30 MB 499 

AZ 40 MB 625 

Plus 20 MB Call 

Plus 40 MB Call 

HARD DRIVES 

Seagate 20 MB 275 

Seagate 30 MB 309 

Seagate 30 MB AT ....Call 

MODEMS 

AZ300/1200 75 

Everex 300/1 200 89 

Hayes 1200... Call 

Hayes 1200B Call 

Hayes 2400 Call 

U.S. Robotics 2400 .... 335 

MICE 

Logitech Call 

Microsoft Bus 106 

Microsoft Serial 119 

Optimouse w/Dr Halo . . 96 
Optimouse w/DPE .... 185 



Magnovox RGB 

PRINCETON 

Max 12 


. . Call 
.. 138 


HX12E 


. . 460 


SAMSUNG 

TTL Amber. . , ., 

Color w/tilt 

PRINTERS 

CITIZEN 

MSP 10 


...72 
.. 249 

.. 249 


MSP 15 


. . 315 


MSP 20 


. . 285 


1 20 D 


. . 159 


Premiere 35 471 

Tribute 224 639 

EPSON - Call on all models 

NEC 

P5XLP 840 


P7 Parallel 

8850 


.. 619 
. 1059 


P6 Parallel 

P960XL 

OKIDATA - 

Call on all models 
PANASONIC 

1080-I/M2 

1090-I/M2 

1092-1 


.. 439 
. 1035 

.. 172 
.. 199 
.. 310 


1524 


.. 572 


1592 


. . 392 


1 595 


.. 439 


3131 


.. 259 


3151 


.. 407 


STAR MICRONICS 

NB24-10 

NB24-15 

ND10 


.. 456 
.. 610 
.. 275 


NP10 


. . 139 


NX10 


. . 160 


NX15 


.. 306 


TOSHIBA 

321 SL 


.. 510 


341 SL 


. . Call 


351 Model II 

RAM 

64K150NS 


.. 910 
. 16.50 


256K150NS 


...33 



TERMS: Shipping on most software 
is S5.00. AZ orders ♦GJVo sales 
tax. Personal check/company 
check -allowfourteen (14) days to 
clear. We accept purchase orders 
from authorized institutions for 
3.5% more than cash price. All 
returns are subject to our ap- 
proval. There will be a20% restock 
fee. Minimum phoneorderS50. All 
prices are subject to change. Due 
to copyright laws we cannot take 
back any open software. 



No Charge for Master Card or Visa 

VISA 



We do not guarantee compatibility 



TOLL-FREE ORDER LINE 1-800-421-3135 

WAREHOUSE DATA PRODUCTS 

2701 West Glendale Ave. • Phoenix, AZ 85051 



Phone Hours: Monday, Wednesday & 
Thursday 7 am-9 pm; Tuesday & Friday 
7 am-5 pm; Saturday 9 am-5 pm. MST. 



Circle 242 on Reader Service Card 



B Y T E 1987 Extra Edition • Inside the IBM PCs 71 



PS/2 VIDEO PROGRAMMING 



to right and from top to bottom on the 
screen. In 640 by 480 two-color mode, a 
bit represents one pixel, so there are eight 
pixels to each byte in the video buffer and 
80 bytes in the buffer per row of pixels on 
the screen (see figure 1 ) . 

In 320 by 200 256-color mode, each 
pixel value comprises 8 bits, so the video 
buffer is mapped as 200 320-byte rows 
(see figure 2). 

You can write routines that manipulate 
pixels in these MCGA graphics modes by 
modifying code that runs in CGA-com- 
patible graphics modes. The routine in 
listing 3 is an example of code that up- 



dates a single pixel in 320 by 200 256- 
color mode. The program computes the 
video-buffer address by multiplying the 
number of pixels in each row by the pixel 
v coordinate and then adding the pixel x 
coordinate. Since each byte in the buffer 
represents one pixel, updating a pixel 
consists of a single machine instruction. 

The MCGA's 640 by 480 two-color 
graphics mode deserves attention be- 
cause its horizontal resolution and verti- 
cal resolution are the same in terms of the 
number of pixels displayed per inch. 
(Programmers sometimes describe this 
circumstance by saying that the pixels are 



Listing 3: Setting the value of a pixel in 320 by 200 256-color mode. 

spl3 PR0C near 

; call with: AX = y coordinate 

; BX = x coordinate 

; CL = pixel value 

; compute address of pixel in video buffer 

mov dxJ20 

mul dx 

add bx, ax ; BX = X + 320*Y 

mov ax,0A000h 

mov ds,ax ; DS:BX-> pixel in video buffer 
; update the pixel value 

mov [bx],cl 

ret 
spl3 ENDP 



Listing 4: Updating a video DAC color register. 


mov 


ah, lOh ;AH = INT lOh function # 


mov 


bx,7 ;BX = 7 (register #) 


mov 


dh,RedValue ; DH,CH,CL = 6-bit RGB values 


mov 


ch,GreenValue 


mov 


cl,BlueValue 


int 


lOh ; Call video BIOS 





"square.") This means that when you 
draw a figure in 640 by 480 graphics 
mode, you do not need to scale the figure 
to accommodate different horizontal and 
vertical resolutions. 

Video DAC Programming 

Programming the MCGA's video DAC is 
straightforward when you use the video 
BIOS. In all modes except the 320 by 200 
256-color graphics mode, you can use 
only the first 16 video DAC registers. 
The video BIOS loads these registers by 
default with a set of 16 CGA-compatible 
color values. You can, however, update 
any of these color registers using any of 
the 256K color combinations available. 

For example, listing 4 shows how you 
could change the color value in video 
DAC register 7. The color-register value 
is actually 18 bits in size— red, green, and 
blue components are each 6 bits. The 
higher the value you specify for each 
component, the higher the displayed in- 
tensity of that color. 

If a monochrome display is attached to 
the MCGA, the video BIOS performs a 
gray-scaling computation before it loads a 
color value into the specified video DAC 
color register. The video BIOS performs 
gray-scaling by taking a weighted average 
of the red, green, and blue values you 
specify. (The formula used is 30 percent 
red + 59 percent green + 11 percent 
blue.) The result is a gray-scale value that 
corresponds to the overall intensity of the 
specified color combination. 

The VGA 

The VGA subsystem takes its name from 
the video graphics array, a proprietary 
VLSI gate-array circuit that incorporates 
the functions of several EGA compo- 
nents: the CRT controller, the sequencer, 

continued 































1 


f 










y 


' 


Horizontal and vertical timing 




! 






1 








1 




CRT 

controller 


\ 


Graphics 

controller 




Video RAM 


1 


■^ 






























Sequencer 






Attribute 
controller 


Digital 


Video 
DAC 






A 






T 












RGB 


Analog RGB 




.;W 



























Figure 3: The VGA subsystem. Components of the VGA chip are outlined in red. 



72 Inside the IBM PCs • BYTE 1987 Extra Edition 




Developing a complex 
PC application with 
the wrong database 
has its pitfalls. 



Any PC database 
manager can do 
■ simple applica- 
tions and queries. 

But when you want 
more complex applications, 
a limited product can be 
your downfall. 

PC/FOCUS® is not just a 
database manager. It's also 
a true fourth-generation 
language with a complete 
set of developer's tools, 
including a screen painter, 
report writer, statistics, 
graphics, and micro-mini- 
mainframe communica- 
tions. Programmer 



productivity gains are often 
ten to one, or more. 

Release 3.0 
A Window on the PC 

And with Release 3.0, 
PC/FOCUS can be com- 
pletely window-driven. You 
can use windows to pro- 
gram. Or create window- 
driven programs. Or both. 

In its table-driven mode, 
PC/FOCUS is superb for 
quickly developing proto- 
types for large applications. 
Yet it also has the program- 
ming richness and power 
demanded by advanced 

PC/FOCU5 

Information Builders, Inc. 



users. And they won't run 
out of memory, because 
PC/FOCUS breaks the 640K 
barrier with extended 
memory support. 

It's Better with Data 

And PC/FOCUS delivers 
real access to real data. In 
fact, you can apply the pow- 
erful data analysis tools of 
PC/FOCUS directly against 
a dBASE file. By communi- 
cating with FOCUS in a 
mainframe, PC/FOCUS can 
also access data from every 
important mainframe data- 
base manager, including 
DB2 and IMS. 

And Multi-user 
PC/FOCUS is available 
today for all the major LANs. 

We give PC/FOCUS the 
same support as its main- 
frame counterpart: local help 
lines in 12 regional offices, a 



Release 3.0 



Some new features of PC/FOCUS: 

Developers' windows 

ModifyTalk (simplifies the programming 

of database updates) 
Scripting Language (generates 

communications macros) 
Full-screen asynchronous 

communication 
Protocol converters 
Completely menu-driven user 

interface 
3-D graphics 



central hotline, and a nation- 
al network of technical sup- 
port and training centers. 

Before you take another 
step, learn more about 
PC/FOCUS. Call 1-212-736- 
4433, Ext. 3700. Or write 
Information Builders, Inc., 
Dept. 07, 1250 Broadway, 
New York, NY 10001. We 
won't let you down. 

PC/FOCUS is a registered trademark of Information Builders. Inc. 



BYTE 1987 Extra Edition • Inside the IBM PCs 73 



PS/2 VIDEO PROGRAMMING 



Listing 5: Establishing an 80 by 50 alphanumeric mode on the VGA. 

; establish 400-line resolution in alphanumeric mode 

mov ax, 1202h ; AH = 12h ( INT lOh function number) 
; AL = 2 (select 400-line modes) 
; BL = alphanumeric scan-lines select 

; call video BIOS to set mode 

load video BIOS 8x8 characters into alphanumeric character generator 
mov ax, 1112h ; AH = INT lOh function number 
; AL = 8x8 character-set load 
mov bl, ; BL = block to load 

int lOh ; load 8x8 characters into RAM 



mov 


bl,30h 


int 


lOh 


mov 


ax, 3 


int 


lOh 



the graphics controller, and the attribute 
controller (see figure 3). 

You program each component of the 
VGA as you would on the EGA. Each 
contains a number of control registers 
mapped to 8-bit ports. As with the 
MCGA, you access each register by writ- 
ing a register number to an I/O port and 
then reading or writing the specified reg- 
ister. The CRT controller has 25 registers 
addressed at ports 3D4 and 3D5; the se- 
quencer has 5 registers at ports 3C4 and 
3C5 ; the graphics controller maps 9 reg- 
isters to 3CE and 3CF; and the attribute 
controller has 21 registers, including 16 
palette registers, mapped to 3C0 and 3 C 1 . 

Almost all of the many VGA control 
registers have the same function on the 
EGA, so if you are familiar with the 
EGA, you will be comfortable program- 
ming the VGA as well. The function of 
each of the registers is documented in 
IBM's technical reference manual for the 
PS/2 Models 50 and 60. 

The VGA supports all the video modes 
available on the EGA, as well as the 640 



by 480 two-color and 320 by 200 256- 
color graphics modes found on the 
MCGA. One additional graphics mode is 
unique to the VGA: a640by480 16-color 
graphics mode (BIOS mode 12H) that is 
similar to the EGA-compatible 640 by 
350 16-color mode, but with higher ver- 
tical resolution. 

As on the MCGA, the default alphanu- 
meric modes on the VGA have 400-line 
vertical resolution. Unlike the MCGA, 
however, you can set up the VGA's CRT 
controller to display alphanumeric char- 
acters with 200-line or 350-line resolu- 
tion for compatibility with the CGA and 
the EGA. 

Video BIOS 

As on the MCGA, the VGA video BIOS 
provides support for all the CGA- and 
EGA-compatible INT lOh functions. The 
VGA BIOS also supports INT lOh func- 
tions lAh and lBh, which return infor- 
mation regarding the hardware config- 
uration and video BIOS status as they do 
on the MCGA. 



The VGA video BIOS also provides a 
video-state save/restore capability 
through INT lOh function ICh. This 
function can save and restore all control 
registers, video DAC registers, and 
video-related information from the BIOS 
data area in RAM, using a buffer pro- 
vided at a user-specified address. The 
ability to save the state of the VGA and 
subsequently restore it lets a program 
switch between video modes or program 
the palette and video DAC registers freely 
without losing the context of a previously 
established video state. 

Alphanumeric-Mode Programming 
As on the MCGA, CGA-compatible al- 
phanumeric-mode programming on the 
VGA is straightforward. Again, the video 
buffer is addressed starting atB800:0000 
and mapped with alternating character 
codes and attributes. Video-BIOS sup- 
port for character I/O is the same as it is 
on other IBM video subsystems. 

As for the EGA and MCGA, you can 
configure the VGA to display user-de- 
fined alphanumeric character sets. You 
can also program the VGA's CRT con- 
troller to display characters of different 
vertical sizes, so that you can display 
more than the default 25 rows of alphanu- 
meric characters. Listing 5 is a simple ex- 
ample of how you can call the video BIOS 
to set up an 80 by 50 alphanumeric mode 
using the 8 by 8 character definitions 
found in the BIOS ROM. 

Graphics-Mode Programming 

If you can program the EGA and MCGA 
in graphics modes, you can program the 
VGA. Routines that read and write pixels 

continued 



PERISCOPE '^T POWER 




KTop-of-the-line Periscope 
eeps you going full steam g «5> hHe . hardware 

_ r m * Zm . . breakpoint board. 

ahead when other debuggers 
let you down. With four 
models to pick from, you'll 
find a Periscope that has just 
the power you need, 

. . . Start with the model that fits your current needs. If 
you need more horsepower, upgrade for the difference in price plus S10! 
And don't worry about having a lot more to learn . . . Even when you 
move to the most powerful model, Periscope III, an extra dozen com- 
mands are all that's involved. 

Periscope's software is solid, comprehensive, and flexible. It 
helps you debug just about any kind of program you can write . . . 
thoroughly and efficiently. Periscope's hardware adds the power to solve 
the really tough debugging problems. 

Periscope requires an IBM PC, XT, AT, or close compatible 
(Periscope III requires hardware as well as software compatibility); DOS 
2.0 or later; 64K available memory; one disk drive; an 80-column 
monitor. 



Periscope I includes a half-length board with 
56K of write-protected RAM; break-out switch; 
software and manual for $345. 
Periscope II includes break-out switch; software 
and manual for S175- 
Periscope II-X includes software and manual 
(no hardware) for S145. 
Periscope III includes a full-length board with 64K of 
write-protected RAM, hardware breakpoints and real-time trace buffer; 
break-out switch; software and manual. Periscope III for machines run- 
ning up to 8 MHz is S995; for machines running up to 10 MHz, S1095. 

Call Toll-Free for free information or to order your 
Periscope today! 

MAJOR CREDIT CARDS ACCEPTED. 800 m 722 m 7006 



The 

PERISCOPE 

Company, Inc. 



14 BONNIE LANE 

ATLANTA, GA 30328 

404/256-3860 



74 Inside the IBM PCs • BYTE 1987 Extra Edition 



Circle 1 72 on Reader Service Card 



PC COMPATIBLE 
SOFTWARE 

ANSA 

Paradox $359.00 

ASHTON-TATE 

D Base 111+ $389.00 

FrameWork II $389.00 

Multimate Advantage II $CALL 

Rapiditte $244.00 

BOEING 

Boeing Calc $CALL 

Boeing Graph $CALL 

BORLAND 

Eureka $CALL 

Reflex $84.95 

Reflex Workshop $44.95 

Sidekick(unprotected) $47.00 

Sidek'ickfl"ravelmg 

Sidekick Bundle $74.95 

Superkey $37.00 

Travelling Sidekick $42.95 

Turbo C $CALL 

Turbo Database Toolbox ..$42.95 

Turbo Gameworks $39.00 

Turbo Graphix Toolbox $31.00 

Turbo Jumbo Pack $177.00 

Turbo Lightning $54.95 

Turbo Pascal $59.00 

TuTtoo Pascal 

Numerical Methods $59.00 

Turbo Prolog SCALL 

Turbo Prolog Toolbox $57.95 

Turbo Tutor $27.95 

BRODERBUND 

Graphics Library $25.95 

Graphics Library Disks $24.95 

Newsroom Pro $69.95 

Print Shop $39.95 

Print Shop Companion $32.00 

Toy Shop $42.95 

CENTRAL POINT 
SOFTWARE 

COPY II PC $27.00 

Option Board $79.95 

PC Tools $27.00 

DAC SOFTWARE 

Dae Easy Accounting $54.95 

Dae Easy Acct. Tutor $19.95 

Dae Easy Payroll $39.95 

DAYBREAK 

Silk $CALL 

ELECTRONIC ARTS 

Call for price on all titles! 

EPYX 

Call for price on all titles! 

FUNK 

Sideways $37.95 

GENERIC SOFTWARE 

Generic Cadd 3.0 $69.95 

Generic Cadd w/Dot Plot ..$89.95 

INFOCOM 

call for price on all titles! 

LIFETREE 

Volks Writer $157.00 

Words & Figure $137.00 

LIVING VIDEOTEXT 

Ready! $52.95 

Think Tank $97.95 

LOTUS 

123 $307.00 

HAL.. $CALL 

Symphony $439.00 

MECA 

Managing Your Money ...$119.95 

MERIDIAN TECHNOLOGY 

Carbon Copy $109.00 

MICROPRO 

Wordstar 2000 $199.00 

Wordstar 2000+ $21 9.00 

Wordstar Prof Rel 4 $249.00 

MICRORIM 

R Base Systems $427.00 

Clout $124.00 

MICROSOFT 

Access $CALL 

C Compiler $249.00 

Chart $164.00 

Flight Simulator $32.95 

Fortran $267.00 

Macro Assembler $87.00 

MS-DOS & GW Basic $CALL 

Mouse $109.00 



Pascal $167.00 

Project $227.00 

Quick Basic $57.00 

Windows $57.00 

Word Version 4.0 $CALL 

MICROSTUFF 

Crosstalk XVI $94.0 

NORTON PRODUCTS 

Norton Commander $39.95 

Norton Utilities $49.95 

Norton Advanced Utilities .$84.00 
PAPERBACK SOFTWARE 

VP Planner $52.95 

Executive Writer $39.95 

Executive File $29.95 

VP Graphics SCALL 

VP Expert $CALL 

VP-lnfo $59.00 

PERSONICSCORP 

Smart Notes $47.95 

ROSESOFT 

Prokey $74.00 

SOFTWARE PUBLISHING 

Harvard Presentation 

Graphics $229.00 



Harvard Total PM $257.00 

PFS First Choice $94.00 

Professional File $139.00 

Professional Plan $CALL 

Professional Write $109.00 

SIMON & SCHUSTER 
Typing Tutor III $39.95 

SPRINGBOARD 

Newsroom Pro $79.00 

Clip Art $CALL 

SYMANTIC 

Q&A $219.00 

TURNER HALL 

Note It $57.00 

SQZ $57.00 

UNISON WORLD 

Newsmaster $CALL 

WORD PERFECT 

WordPerfect $207.00 

Executive $127.00 

Library $79.00 

Math Plan $CALL 

XEROX 

Ventura Publisher SCALL 



HARDWARE 



PRINTERS 

CITIZEN 

120D $174.00 

MSP-10 $279.00 

MSP-15 $379.00 

Premier 35 $459.00 

Tribute 224 $CALL 

EPSON PRINTERS 

FX-86E $317.00 

FX-286E $447.00 

LX-800 $179.00 

LQ-800 $447.00 

LQ-1000 $627.00 

EX-800 $387.00 

EX-1000 $497.00 

GQ-3500 LASER $1499.00 

CALL FOR PRICE 

ON EPSON COMPUTERS 

PANASONIC PRINTERS 

1080i $159.00 

1091i $189.00 

1092i $279.00 

1 592 $389.00 

1 595 $439.00 

3131 .....$259.00 

3151 $399.00 

Laser Printer $CALL 

STARMICRONICS 

NP-10 $134.95 

NX-10 ;...$157.95 

NX-15 $349.00 

ND-10 $289.00 

ND-15 $429.00 

NR-15 $499.00 

NB24-1 $499.00 

NB24-15 $639.00 

MONITORS 

TTL Monochrome 

Amdek 41 0A Amber, 

Green.or White $149.00 

Blue Chip Green $89.00 

Packard Bell Amber w/std. $97.00 

Samsung TTL $89.00 

Xtron Amber 

TTL/CGA autoswitch $119.00 

Zenith 1240 $139.00 

RGB 

Magnavox 8562 $269.00 

Magnavox 851 5 $289.00 

Thompson ...All Models .... $CALL 

Zenith 1330 $407.00 

EGA 

NEC Multisync $549.00 

Packard Bell 

EGA/CGA/TTL Auto $419.00 

Goldstar EGA $CALL 

Amdek 722 $477.00 

Thompson Ultrascan $499.00 

Zenith 1470 EGA $219.00 




Kensington 

Accessories in stock!!! 

Call for Best Price 



DONT SETTLE FOR LESS... 

tCp SHIPS IT 




Software orders over $50 & Accessories/Peripherals 
under 8 pounds will be shipped FEDERAL EXPRESS 

(Yes even at these prices). You only pay TCP's standard shipping charge o! $4 00 per 
order. Orders arriving belore 1 1 00 AM our time will be shipped out same day. II part of 
your order is backordered the remainder will be shipped UPS Ground tor FREE 



TOLL 
FREE 



1-800-468-9044 



PC ADD ON BOARDS 

AST 

Advantage(128k) $319.00 

Rampage AT ..$419.00 

Rampage PC 

6Pak+(64k).. SCALL 

I/O Mini II $159.00 

ATI 

Graphic Solution $187.00 

EGA Wonder ..$274.00 

BOCA RESEARCH 

EGA/CGA/MDA/MCA $149.00 

BOCARAM XT w/OK $139.00 

BOCARAM AT w/OK $169.00 

Bocarams are Intel Above Board 
compatible 

BOCA I/O AT $79.95 

BOCA I/O XT $79.95 

Gameport Adapter for I/O .$19.95 
HERCULES 

Graphics Plus $179.00 

Color Card $147.00 

Other Hercules boards in stock... 

Call for price 

INTEL 

AboveBoard PC $227.00 

AboveBoard PS/XT $267.00 

AboveBoard AT $339.00 

SWAN TECHNOLOGIES 
Add on Cards 
-Compatibility guaranteed 
-1 year replacement warranty 
CGA card w/printer port ....$69.95 
Hercules Compatible Mono 

card w/printer Port $69.95 

Multil/O SCALL 

for configuration and price 

PARADISE 

Autoswitch 360 $149.00 

Autoswitch 480 $169.00 

STB 

EGA+ $259.00 

Chauffer HT $214.00 

ZUCKER 

CGA $89.95 

Monochrome Graphics $94.95 

Memory Expansion SCALL 

PC HARD DRIVES 

Miniscribe 

30MB XT Drive 

w/controller $339.00 

30MB Hard Card $429.00 

30MB AT Hard Card $479.00 

40MB AT Drive $379.00 

Seagate - 
ST-225 20MB 

w/controller... $289.00 

ST-238 30MB 

w/controller.. $359.00 

AT Hard Drives 

ST-4038 $549.00 

ST-251 $469.00 

Western Digital 

File Card 20 $439.00 

File Card 30 ...$CALL 

AT FD/HD Controller $169.00 



INFORMATION AND PA ORDERS 814-234-2236 

OPEN: 8:00AM-9:00PM Mon-Fri 
10:00AM-6:00PM Sat-Sun EAST COAST TIME 







$749 

Buy with Confidence. 

30 -Day Satisfaction Guarantee 



^SuianXTlO 

■ 4.77/1 0MHz. ■ 640 KB RAM (120 nano-seconds) on 
motherboard. ■150WPowerSupply. ■ 8 Expansion Slots. 

■ (2) 360K Floppy Drives (Room for 2 additional 1/2 height 
devices). ■ 101 Key, Enhanced AT Style Keyboard with 

IBM® type mechanical "touch-click" feel. ■ Reset 
and Turbo Buttons plus Keyboard Keylock on front 
panel. ■ Hercules compatible monographic card 
(720 x 348). ■ High Resolution Amber Monitor with 
tilt and swivel. ■ Game Port ■ Parallel and Serial 
Ports, Clock/Calender w/Battery Back-up. ■ MS 
DOS V3.21/GW Basic Option $79.95. 
HARD DRIVE OPTION: Same as above but 
w/single Floppy Drive, 30MB Hard Drive and 
Controller. Only $999.00 

CALL FOR CGA & EGA OPTIONS 



IMSI 

PC mouse w/Dr. Halo II ....$89.00 

MODEMS 

Hayes Smart Modem 

1200B w/sw $329.00 

2400B w/sw $499.00 

Swan Technologies 1/2 Card 
Interna] 300/1 200, Includes PC 

Talk III software $89.00 

2400 baud Internal $199.00 

Packard Bell External 

300/1200 baud $149.00 

2400 baud External $279.00 

US Robotics Sportster 

300/1200 baud $139.00 

Ventei Modems 

Call for best prices on all models 

Zucker 

300/1200 Half Cd Modem 

with software $87.00 

CHIPS 

Numeric Coprocessors 

8087 $104.00 

8087-2 $147.00 

80287.. $179.00 

80287-2 $CALL 

Memory Chips 
64k- 120 or 150ns 
64k x 4 120 or 150ns 
256k- 120 or 150ns 
PRICES ARE TOO VOLATILE 
TO LIST! PLEASE CALL 
FOR CURRENT PRICE. 




AMSTRAD 



PC-1512 

Compatibility 

Ptus ■ 8MHz 

Processors 3 

Available Slots 

■ 512K Memory 

I Parallel Port, Serial Port, 

Game Port Standard ■ Microsoft 

Compatible Mouse ■ MS-DOS 3.2, 

GEM Desktop, GEM Basic 2 ■ CGA Video Card 

CALL FOR BEST PRICE 

IN THE USA 



TOSHIBA 

3 1/2" DRIVE, 720 K, 
Requires DOS 3.2 or higher 

Includes Mounting Hardware $129.00 



EDUCATIONAL & CORP ACCOUNTS 

CALL l-a00-533-1131 

Inside PA Call 814-234-2236 



DISKS 

per box of 10 



3.50" 5.25' 



BONUS DS/DD $6.95 

MAXELL DS/DD $17.95 $9.95 

VERBATIM DS/DD $19.95 $9.95 

SONY DS/DD $16.95 $8.95 



To order by mall: We accept money order, certified check, 
personal check. Allow 2 weeks for personal check to clear. 
Shipping: $4.00 for software and accessories/ $10.00 for 
printers and color monitors/ $8,00 for disk drives and other 
monitors/ Add $3.00 per box shipped COD. Call for other 
shipping charges. Additional shipping required on APO, 

FPO, AK, HI, and foreign orders, j^^^^- 

Terms: ALL PRICES REFLECT RiP 

CASH DISCOUNT, ADD 1 .9% \mm^ 

FOR MASTERCARD OR VISA. ^^™ 

All products include factory warranty. 

ALL SALES ARE FINAL Detective items replaced or re* 

paired at our discretion. Pennsylvania residents add 6% 

sales tax. Prices and terms subject to change withoul nolice. 



TUSSEY COMPUTER PRODUCTS 5fr!%IS a « .«. IWM 



Circle 45 on Reader Service Card 



OUR PLUG-IN CARDS 
GIVE YOU PLUG-IN 
CONTROL 



Your IBM PC/XT/AT or 
compatible can control any 
IEEE-488 instrument. 




You can: 

□ Plug-in to BASIC, C, 
FORTRAN, or Pascal. 

□ Use HP-IB plotters, 
printers, and instruments, 

D Spend less time programming 

□ Call (617) 273-1818 and put us to the test. 
Complete hardware and software solutions for just $395, 



cec 



Capital Equipment Corp. 
99 South Bedford Street 
Burlington, MA. 01803 




MANZANA 3.5" DRIVES AND 3FIVE® SOFTWARE 

It Takes More Than 

DRIVE TO GET AHEAD 




\ internal or external 3.5" floppy drives come with 
softvfarejthat supports more 3.5" formats on more computers than anyone 
else. PS/^c^Rigatibility, Laptop compatibility, and backup capability all 
from the same peripheral. Please call for more information. We look forward 
to providing you with the finest quality 3.5" disk upgrades available. 



Come see us at COMDEX! Fall '87 
Rally's Las Vegas, Booth B738 



MANZANA 

MICROSYSTEMS. INC. 



(sua) yt>s-i:58/ 




Manzana MicroSystems, Inc., P.O. Box 2117, Goleta, CA 93118. Telex 4932215 



PS/2 VIDEO PROGRAMMING 



in CGA- and MCGA-compatible graph- 
ics modes also run on the VGA in these 
modes. In EGA-compatible graphics 
modes (320 by 200 16-color, 640 by 200 
16-color, and 640 by 350 16-color), the 
same routines you use on an EGA should 
also run on a VGA. The only video mode 
unique to the VGA is 640 by 480 16-color 
mode, but it is almost identical to the 
EGA-compatible 640 by 350 16-color 
mode. 

In these EGA-compatible modes, the 
video buffer is set up as a set of four par- 
allel bit planes, each of which shares the 
same range of addresses starting at 
A000-.0000. Data bytes are transferred to 
and from the bit planes in parallel when- 
ever the CPU executes a read or write 
instruction. 

This limited parallel processing is car- 
ried out by the VGA's graphics control- 
ler, which contains a set of four 8-bit in- 
ternal registers or latches. Whenever the 
CPU executes an instruction that per- 
forms a read from an address in the video 
buffer, the graphics controller copies the 
contents of each of the parallel bit planes 
at the specified address into the latches. 
Thus, for example, when the CPU exe- 
cutes a MOV reg,mem instruction, the 
graphics controller copies 4 bytes of data 
from the bit planes into the latches. 

The converse process occurs when a 
CPU executes a write instruction. In this 
case, the graphics controller combines 
the data byte written by the CPU with the 
contents of each of the latches and writes 
the result to the bit planes. Thus, the se- 
quence of events in updating the video 
buffer in graphics modes is to execute a 
CPU read followed by a CPU write. This 
can be a sequence of two MOV instruc- 
tions, as well as a single CPU instruction, 
such as M0VS. 

Pixels are represented by the set of cor- 
responding bits at the same address in 
each of the bit planes. Since there are four 
bit planes, a pixel can have any of 16 (2 4 ) 
different values, and the number of dif- 
ferent colors you can display at one time 
is 16. You might think of the contents of 
the graphics controller latches as eight 
adjacent pixel values instead of 1 byte 
from each of the four bit planes. 

As on the EGA, the key to graphics- 
mode programming on the VGA is to con- 
trol the way the graphics controller ma- 
nipulates the data bytes (pixel values) it 
reads from and writes to the bit planes. 
On the VGA, two graphics-controller 
read modes and four write modes affect 
what the graphics controller does during 
CPU reads and writes. 

Graphics-Controller Read Modes 

The two graphics-controller read modes 
are the same as those implemented on the 



76 Inside the IBM PCs • BYTE 1987 Extra Edition 



Circle 127 on Reader Service Card 



PS/2 VIDEO PROGRAMMING 



EGA. In read mode 0, the value of one in 
the four latches is copied to the CPU each 
time the latches are loaded by a CPU read 
operation. In read mode 1 , the eight pixel 
values in the latches are compared to a 
reference value stored in the graphics 
controller's color-compare register. The 
graphics controller returns the result of 
the eight comparisons in a single byte to 
the CPU. Each bit of the byte contains a 1 
bit where a latched pixel value matches 
the reference value. 

Read mode is useful for transferring 
data out of the bit planes into system 
RAM because you can access the con- 
tents of each bit plane separately . You can 
use read mode 1 for graphics operations, 
such as region fills, where you must scan 
the video buffer for pixels that match a 
predetermined value. 

Graphics-Controller Write Modes 

Each of \he fouT graphics-controller write 
modes is also designed to simplify cer- 
tain kinds of programming tasks. Write 
mode is the one that the video BIOS 
routines use most frequently. In write 
mode 0, the graphics controller combines 
the eight latched pixel values with either 
the data byte written by the CPU or with a 
pixel value stored in the graphics-control- 
ler set/reset register. The graphics con- 
troller can AND, OR, or XOR pixel values, 
as well as replace them with CPU or set/ 
reset data. You control this activity pixel 
by pixel by storing a bit mask in the 
graphics controller's bit-mask register; 
the bit mask indicates which of the eight 
latched pixel values is updated and which 
is left alone during the operation. 

Consider what happens in listing 6, 
which uses write mode to update the 
value of a pixel in 640 by 480 16-color 
mode. First, the routine computes the ad- 
dress of the pixel in the video buffer, as 
well as a bit-mask value for the bit-mask 
register. Then the graphics-controller 
registers are set up for the operation; 
write mode is selected, the desired pixel 
value is stored in the set/reset register, 
the set/reset function is enabled for all 
four bit planes, and the bit-mask value is 
placed into the bit-mask register. Then 
the OR instruction updates the bit planes. 
Finally, the graphics-controller registers 
are updated with values that correspond 
to those used by default by the video 
BIOS, so that subsequent video BIOS 
routines run as expected. 

Clearly, most of the work involves 
configuring the graphics controller; only 
one CPU instruction actually updates the 
pixel. Note the sequence of events that 
occurs during execution of the OR instruc- 
tion: First, a CPU read occurs, so the 
latches are loaded with the eight pixel 
values at the specified address. Then, the 



CPU performs a logical OR of a register 
with the value it read from the graphics 
controller and performs a CPU write 
with the result. 

The graphics controller ignores the 
byte written by the CPU because it is con- 
figured to use the pixel value in the set/re- 
set register to update the latches. The bit- 
mask-register value specifies which of 
the eight latched pixel values is replaced 
with the set/reset value as the latched data 
is copied to the bit planes during the CPU 
write operation. 

In graphics-controller write mode 1, 
the contents of the four latches are simply 
copied to the bit planes. Thus, write 
mode 1 is useful in filling the video 
buffer with a solid color or a pixel pat- 
tern. 

In write mode 2, the pixels in the latch- 
es are updated with the pixel value speci- 
fied in the CPU data byte instead of in the 
set/reset register. Consequently, you can 
use write mode 2 as easily as write mode 



for updating the value of individual 
pixels in the buffer. 

The VGA also supports a graphics- 
controller write mode 3. It is similar to 
write mode 0, except that its bit-mask 
value is derived by combining the data 
byte written by the CPU with the value in 
the bit-mask register using an AND opera- 
tion. This lets you change the bit-mask 
pattern without programming the bit- 
mask register. However, because the 
EGA does not support write mode 3, you 
must avoid using it if you are designing a 
program to run on the EGA as well as the 
VGA. 

Video DAC Programming 

Using the video DAC is somewhat more 
complicated on the VGA than on the 
MCGA because the VGA's attribute con- 
troller plays a role in accessing the video 
DAC. The VGA does not restrict you to 
using only the first 16 video DAC color 

continued 



Listing 6: Setting the value of a pixel in 640 by 480 16-color mode. 


spl2 PR0C 


near ; call with: AX = y coordinate 


t 




BX = x coordinate 


\ 




CL = pixel value 


; compute the 


pixel address in the video buffer 


push 


ex 


; push pixel value 


mov 


cx,bx 




and 


cl,7 




mov 


ch, 10000000b 


shr 


ch, cl 


; CH = bit mask f orpixel 


mov 


dx,80 




mul 


dx 


; AX = Y*80 


mov 


clj 




shr 


bx, cl 


; BX = X/8 


add 


bx, ax 


; BX = Y*80 + X/8 


mov 


ax,0A000t- 




mov 


ds,ax 


; DS:BX -> pixel in video buffer 


; set up the graphics controller 


mov 


dx,3CEh 




mov 


ax, 0005 




out 


dx,ax ; 


set up write mode 


pop 


ax ; 


pop pixel value 


mov 


ah,al 




mov 


al,0 




out 


dx,ax ; 


set up set/reset register 


mov 


ax,0F01h 




out 


dx,ax j 


set up enable set/reset register 


mov 


ah,ch 




mov 


al,8 




out 


dx, ax i 


set up bit-mask register 


; update the pixel 




or 


[bx],al , 


update latches during CPU read 
update bit planes during CPU write 


; restore default graphics-controller register values 


mov 


ax, 0000 




out 


dx,ax 


default set/reset value 


mov 


ax, 0001 




out 


dx,ax 


default enable set/reset value 


mov 


ax,0FF08h 




out 


dx, ax 


default bit-mask value 


ret 






spl2 ENDP 







B Y T E 1987 Extra Edition • Inside the IBM PCs 77 



PS/2 VIDEO PROGRAMMING 



registers in alphanumeric modes and 16- 
color graphics modes. You can program 
the attribute controller to address the 256 
video DAC registers in 16 register 
blocks. 

On the VGA, each 4-bit attribute value 



(in alphanumeric modes) or 4-bit pixel 
value (in graphics modes) is processed by 
the attribute controller, which uses the 
value to select one of its 16 palette regis- 
ters (see figure 4). Each of the palette 
registers contains a 6-bit value that com- 















Attribute controller 

color-select 

register 












Attribute 
controller 
pallette 
registers 




2 bits 


Video 
DAC 


6 bits 8 bits 


Analog 

RGB 

signals 


4-bit 
attribute 











Figure 4: VGA color control. 



Listing 7: Using a block q 


f video DAC color registers. 


Buffer db 


3*64 dup ( ? ) ; buffer for color-register values 


; copy first 64 video DAC color registers to second 64 registers 


mov 


ax,1017h 


AH = lOh (video-BIOS function number) 
AL = 17h (read block of color registers) 


mov 


bx,0 


BX = first register 


mov 


ex, 64 


CX = number of registers to read 


mov 


dx,seg Buffe 


r 


mov 


es,dx 




mov 


dx, offset Bu 


ffer ; ES:DX-> buffer 


int 


lOh 


read registers into buffer 


mov 


ax,1012h 


AH = 10h 

AL = 12h (set block of color registers) 


mov 


bx,64 


BX = first register to set 


mov 


ex, 64 


CX = number of registers to set 


mov 


dx, seg Buffe 


r 


mov 


es,dx 




mov 


dx,of f set Bu 


ffer ; ES:DX-> buffer 


int 


lOh 


set registers 


; perform gray-scale summii 


ig 


mov 


ax,101Bh 


AH = 10h 

AL = lBh (perform gray-scale summing) 


mov 


bx,64 


BX = first register to sum 


mov 


ex, 64 


CX = number of registers 


int 


lOh 




; use the gray-scale values 




mov 


ax,1013h 


AH = 10h 






AL = 13h (select video DAC color page) 


mov 


bx,101h 


; BL = 1 (select specified color page) 
; BH = 1 (color-page specifier) 


int 


lOh 




; use the default color val\ 


les again 


mov 


ax,1013h 




mov 


bx,001h 


; BH = (color-page specifier) 


int 


lOh 





bines with the value in the attribute con- 
troller's color-select register to form an 
8-bit value; this 8-bit value is passed to 
the video DAC. 

The video DAC in turn uses the 8-bit 
value to select one of its 256 color regis- 
ters, each of which contains an 18-bit 
RGB specification. In this way, a 4-bit at- 
tribute decodes into the set of three ana- 
log RGB values output by the video sub- 
system to the monitor. 

Both the values in the palette registers 
and the value in the color-select register 
determine which video DAC color regis- 
ters are referenced to generate color 
output. 

By default, the video BIOS maintains 
EGA compatibility by initializing the at- 
tribute-controller palette registers with 
the same 6-bit values as on the EGA, as 
well as the first 64 video DAC registers 
with RGB values that produce the same 
64 colors available on the EGA. 

You could use the three remaining 64- 
register blocks of video DAC color regis- 
ters by programming the attribute-con- 
troller color-select register. Video BIOS 
INT lOh function lOh supports this. (In 
IBM's technical documentation, blocks 
of video DAC color registers are referred 
to as color pages.) 

In listing 7, I used the video BIOS to 
copy the contents of the first 64 video 
DAC registers into the second block of 64 
registers. Then I called the BIOS gray- 
scaling function to replace the second 
block of color-register values with their 
gray-scale equivalents. At this point, I 
could call INT lOh function lOh again to 
select either the default color values in the 
first 64 color registers or the gray-scaled 
values in the second 64 color registers. 

I Could Go On... 

Although there are many more PS/2 
video programming techniques than I can 
cover in the space of this article, it is easy 
to draw one conclusion from this brief 
overview: The MCGA and the VGA fall 
squarely into the mainstream of IBM 
video subsystems. Apart from its ability 
to display more colors and somewhat im- 
proved resolution, the MCGA strongly 
resembles the CGA in its capabilities and 
in the way you program it. Similarly, the 
VGA offers nearly complete compatibil- 
ity with the EGA. 

The VGA represents an incremental 
improvement over the EGA in terms of 
versatility, but it does not introduce any 
significant improvements in speed or res- 
olution when you compare it with the 
EGA or with "enhanced" EGA clones. 
Nevertheless, it seems that many second- 
source vendors of video adapters for PCs 
and ATs regard the VGA as a new de facto 
hardware standard. ■ 



78 Inside the IBM PCs • BYTE 1987 Extra Edition 



GET 

SERIOUS 




...ABOUT ANALYZING 

VAITD F>*nPA You might be spreading your 
I\/UI\ L«\I/\« spreadsheet a little too thin. Or 
maybe you're starting from scratch. But if you're serious 
about data analysis, you're ready for SPSS/PC+ T "-a full 
software family that brings you eight high-powered ways 
to complete any data analysis task. 

Enter it SPSS Data Entry II™ is a fully integrated data 
entry, cleaning and editing tool. 

Analyze it. The SPSS/PC+ base package provides a 
powerful array of statistical and reporting procedures. 

Picture it. SPSS/PC+ Graph-in-the-Box" featuring New 
England Software's Graph-in-the-Box'" offers full color 
"snapshot" graphics. 

Examine it. SPSS/PC+ Advanced Statistics" lets you 
get more serious with your data. 

Predict it. SPSS/PC+ Trends'" -our latest option-is the 
complete time series analysis/forecasting tool. 



Table it. SPSS/PC+ Tables" produces presentation- 
ready tables instantly. 

Chart it. SPSS/PC+ Graphics"' featuring Microsoft* 
Chart creates show-stopping graphs and charts. 

Map rt.SPSS/PC+ Mapping*" featuring MAP-MASTER'" 
creates maps where vast amounts of data can be sum- 
marized and presented in one, simple picture. 

SPSS/PC+ products are being put to productive use 
by serious factfinders in business, government and edu- 
cation. For countless purposes such as market research. 
Wage and salary studies. Survey analysis. And quality 
control. Plus each product is superbly documented and 
supported by SPSS Inc., a leader in statistical software 
for nearly 20 years. While specially tailored customer 
support is available through the VALUE PLUS™ plan. 

So if you're serious about data analysis, step up to 
SPSS/PC+. For details, contact our Marketing 

Depart,. ^^ 1/3 l 2 /329-3315 



SPSSincT 



SPSS Inc. • 444 North Michigan Avenue, Suite 3000 • Chicago, Illinois 60611 

In Europe: SPSS Europe BV. • PO. Box 1 15 • 4200 AC Gorinchem, The Netherlands • Telephone: + 31 18303671 1 • TWX: 21019 

SPSS/PC+ runs on IBM POXT/ATs with hard disk. Contact SPSS Inc. for compatible microcomputers, SPSS/PC+ , SPSSData Entry II, SPSS/PC+ Graph-in-the-Box, SPSS/PC+ Advanced Statistics, 
SPSS/PC+ Trends, SPSS/PC+ Tables, SPSS/PC+ Graphics and SPSS/PC+ Mapping are trademarks of SPSS Inc. VALUE PLUS is a trademark of SPSS Inc. Char! and Microsoft are trademarks of 
Microsoft Corporation. MAP-MASTER is a trademark of Ashton-Tate. Graph-in-the-Box is a trademark of New England Software, Inc. © ^gg7 SPSS Inc 



Circle 215 on Reader Service Card 



B Y T E 1987 Extra Edition • Inside the IBM PCs 79 



For anyone who's ever 
IBM presents personal 



Now it's easier than ever to become 
a newsmaker in business, thanks to IBM's 
new desktop publishing system. 

It's called the IBM 8 SolutionPac™ 
Personal Publishing System. And it 

comes complete with every- 
thing you need to start 




v „ 




newsletters bound to open people's eyes. 
The Personal Publishing System is 
as easy to set up as it is to buy. All the 
components are designed to work to- 
gether, from the Personal System/2™ 
Model 30 to IBM's laser printer, the Per- 
sonal Pageprinter. 

We've also preloaded all the neces- 
sary software-including Windows,™ 



j^.w^Wjgsjjji ppt fppfr, 



The IBM SolutionPac for Personal Publishing lets you design 
and print near typeset quality documents. 

making headlines: the hardware, soft- 
ware, service and support. 

Just one purchase, and you'll be on 
your way to designing and printing the 
kinds of presentations, reports and 




N 



E W S 



LET 



T H E 



All-Stars 



aSffowisionTme 




Heavv hitting powers 
H jffitars to the top 

u &11 Stars won the game, 

Ken, »*SgSfi fee w» *» 
Urf OP »" *'™,S Wman missed *e 

™«»''!».fS«vew. P »iwi\.f ; :": 



start when the 

'at 6:00p.m., 

Madigan Hills 

re will be a 

^experienced 

ught vision) 

m world -" 

:e pierced 

>of 

esof 

ride over 

moonlight 

htsof 

more 

cook 

d to 

and 

tvk 

ild west. 



>FOR 
VBOYS 

iQ*uns, For 
s. we'll be 
the fun- 
Hrseman- 
tfingfor 

diking and 

'hf*H,-icc 



wanted to make headlines, 
publishing. 



PageMaker® and PostScript®- on the 
system s hard disk. All you have to do is 
turn the system on, run through the 
tutorial program and begin composing 
your thoughts. 

Because its from IBM, you can 
transfer many of your IBM-compatible 
files directly into the Personal Publish- 
ing System— where you can then turn 



them into eye-catching documents. 

There's good news for IBM PC 
XT 7286 and Personal Computer AT® 
owners, too. The IBM Personal Publish- 
ing Option offers you everything you 
need to upgrade your PC 
into a cost-saving 




The IBM 
3117 Scanner transfers artwork 
directly into the system. 



print shop. 

To see that 
your newsworthy 
ideas are note- 
worthy, visit your IBM Authorized Ad- 
vanced Products Dealer (ask about the 
IBM Credit Card), or call your IBM 
Marketing Representative. 

For the certified dealer nearest you, 
call 1-800-447-4700, ext 48. (In Canada, 
call 1-800-465-6600.) fV%M" 



© IBM 1987. IBM and Personal Computer ATare registered trademarks, and "SolutionPac," 
PC XT and "Personal System/2" are trademarks, of I B M Corporation. Page Maker is a 
registered trademark of Aldus Corporation. Windows is a trademark of Microsoft Corporation. 
PostScript is a registered trademark of Adobe Systems Inc. 




Choose ALR's 16-MHz 386/2™ system for 
less than $2,000, or a blazing 20-MHz 
_ system for less than $2,500. 




the 386/2 ideal for CAD/CAM work- 
stations and other graphics applications. 
Plus, with Phoenix Control/386 soft- 
ware featuring 3 2 -bit disk caching, Vdisk, 
and EMS/EEMS support, all enhanced 
386/2 systems can run multiple applica- 
tions without memory limitations. 




Now Advanced Logic Research 
announces second-generation 386 
systems that do to the price barrier 
what our first generation did to the 
performance barrier. 
Annihilate it. 
Starting at 
$1990, ALR's 
totally new 
386/2 systems 
couple the power of 32 -bit processing 
with up to 2 MB of true 32-bit memory. 
What's more, unlike other companies, 
ALR 386/2 systems offer a choice of 
16- or 20-MHz processor speeds, with 
sockets for 80287-10 and 80387 
coprocessors. Which means your 
applications will run faster than on any 
other available PC. And ALR 386/2 
systems let you use all the peripherals, 
graphics, enhancements, 
and applications developed 
for the most popular 
computer operating 
system in history 

How to run circles around 
the competition. 

Sure, Compaq and IBM use the 
fastest hard disks and controllers with 
1 : 1 interleaving, just like 
Advanced Logic Research 
But instead of buffering 






I Advanced Logic 
Research 




Compaq 

HI IBM 

a full 17-sector track, they settle for 
single-sector buffering. Our way makes 
the fastest even faster where it counts — 
in the real world. 

Naturally all that speed coupled with 
EGA, enhanced EGA, or other high- 
performance graphics adapters makes 



Take your choice of a convenient desktop or 
space-saving Jloormount system configuration. 

Speed to burn. Without having 
money to burn. 

You won't find more power, flexibility, 
or quality at a more competitive price 
anywhere. And that reaffirms ALR's 
ability to deliver leading edge perfor- 
mance. At leading edge prices. 

I Advanced 
Logic 
Research 
S4389 

■ iBM 
$6995 

Compaq 
$7094 

The ALR 386/2 Model 40 with EGA adapter is 
similar to the IBM Model 80-041 and Compaq 
Desk pro 386 Model 40 with EGA adapter. Except 
for a lower price and twice their standard RAM. 

Of course, ALR also offers a full range 
of high-performance communications, 
memory, and storage enhancements. 

Introducing ALR's 20-MHz 
386/220™ the fastest PC. 
Period. 

If even more speed is what you 
need, you won't find a faster system 

than ALR's new 20-MHz 386/220. It 
scores a phenomenal 23.0 on Norton's 
SI benchmark, giving you nearly 25% 
more horsepower than Compaq's 
Deskpro 386. Yet it's priced many thou- 
sands less. 

Take your pick of ALR's new 386/2 
second-generation 386 systems: fast, 






yfpSk ALR 386/220, 23. SI rating 

~ Compaq Deskpro 386, 18. 6 SI rating 

faster, or fastest. Call Advanced Logic 
Research today for the name of your local 
dealer, And discover the price of power 
isn't as high as it used to be. 

Performance Specifications 



Specifications, configurations, and prices subject to change without notice. Copyright 1987 Advanced lx>gic Research, all rights reserved. Registered 
trademarks: 386/2 and 386/220, Advanced Logic Research, Inc; Phoenix and Control/386, Phoenix Technologies, Ltd.: Compaq and Deskpro, Compaq 
Computer Corporation; IBM, International Business Machines Corporation. 



386/2 Model 10 
386/220 Model 10 

• ALR-designed system board 

• 16-MHz 80386 processor 
(20-MHz optional) 

• Socketed for 80387 and 
80287-10 support 

• I MB 32-bit RAM, expand- 

386/2 Model 40 
386/220 Model 40 

• ALR-designed system board 

• 16-MHz 80386 processor 
(20-MHz optional) 

• Socketed for 80387 and 
80287-10 support 

•2 MB 32-bit RAM 

• 40-MB, 30-ms or better 
average access time hard 
disk drive, 450-KB/s 
transfer rate 

386/2 Model 80 
386/220 Model 80 

• ALR-designed system board 

• 16-MHz 80386 processor 
(20-MHz optional) 

• Socketed for 80387 and 
80287-10 support 

•2 MB 32-bit RAM 

• 70-MB, 30-ms or better 
average access time hard 
disk drive, 450-KB/s 
transfer rate 

386/2 Model 130 
386/220 Model 130 

• ALR-designed system board 

• 16-MHz 80386 processor 
(20-MHz optional) 

• Socketed for 80387 and 
80287-10 support 

•2 MB 32-bit RAM 

• 130-MB, 30-ms or better 
average access time hard 
disk drive, 450-KB/s 
transfer rate 

Enhancements 

A complete range of enhancements, including4 MBof 32 bit 
RAM, multifunction products, and additional I/O products 
are available. 

ti S a V 

co woe* 

^ J \l p Q a b 

^ S J 910 

600^ 

Advanced Logic Research, Inc. 

10 Chrysler, Irvine, CA 92718 (714) 581-6770 
FAX (714) 581-9240 Telex (510) 601-4525 
Answer back Advanced Logic 
From Asia or Europe, call Wearnes Technology, 
Phone (65) 259-2521 Telex RS38113 WRNTEC 

Circle 6 on Reader Service Card (Dealers: 7) 



$1990 
$2485 

able to2 MB on system board 

• 1.2 -MB floppy disk drive 

• Serial and parallel ports 

• Eight expansion slots 

• 101 -key keyboard 

83990 
$4485 

• EMSand EEMS software 

• 1.2-MB floppy disk drive 

• Serial and parallel ports 

• Desktop or floormount 

• Eight expansion slots 

• 101 -key keyboard 

• 32-bit Vdisk and disk 
caching software 



$4690 
$5185 

• EMS and EEMS software 

• 1.2-MB floppy disk drive 

• Serial and parallel ports 

• Desktop or floormount 

• Eight expansion slots 

• 101 -key keyboard 

• 32-bit Vdisk and disk 
caching software 



$7299 

$7794 

• EMS and EEMS software 

• 1.2-MB floppy disk drive 

• Serial and parallel ports 

• Desktop or floormount 

• Eight expansion slots 

• 101 -key keyboard 

• 32-bit Vdisk and disk 
caching software 




INSIDE THE IBM PCs 



Buses provide the base for the next-generation 
personal computer/workstation 



Comparing IBM's Micro 
Channel and Apple's NuBus 

Ciro Cornejo and Raymond Lee 



The 32-bit bus has finally ar- 
rived for the personal com- 
puter in the form of Apple's 
Macintosh II and IBM's Per- 
sonal System/2. Central to 
each of these machines is a 
32-bit bus capable of high- 
speed operations at the band- 
width required for today's 
16-megahertz processors. 

As you might expect, 
though, Apple and IBM have 
adopted dissimilar bus archi- 
tectures. NuBus, developed by 
MIT and Texas Instruments, 
has been adapted by Apple as 
the Macintosh II system bus. It 
supplements the Macintosh IPs 
private 68020 processor bus, 
and six slots open the micro- 
computer for expansion. IBM, 
on the other hand, has re- 
vamped the older IBM PC and 
AT bus to handle higher speeds 
and 32-bit processing. The new 
IBM bus, the Micro Channel, 
serves as both a CPU bus and a 
system bus. 

It's no accident that these 
new computers contain new 
bus architectures. Today's 
new microcomputers require 
more than just increased pro- 
cessor power and expanded 
memory. Investing in these 
products means committing to 
computing platforms that 
must be stable up to and perhaps through 
the mid-1990s. This requires a bus-based 
architecture capable of adapting to ex- 
panding processing rates, coprocessing 
or multiprocessing, and adapting to new 
peripherals such as advanced graphics 
terminals. I'll examine the two buses with 
regard to these capabilities. 

Why a Bus? 

Why have a special bus at all? Most pro- 
cessors actually define a bus structure of 




address and data paths called a local, or 
CPU, bus. The reason for this is straight- 
forward: to build generality into systems. 
A local bus is structured to optimize 
the processor-to-memory bandwidth. It 
is therefore highly processor-dependent: 
It is tightly linked to its processor, mem- 
ory, and specific support peripherals. 
The cost of this performance is a loss of 
flexibility. A local bus might be unable to 
take advantage of newer technologies if 
they differ significantly from the local 



bus's design. 

The existing IBM PC or AT 
buses are examples of an ex- 
panded local bus. An ex- 
panded local bus is a local bus 
with extensions that provide a 
set of generalized signals. 
These additional signals offer 
a general architecture that is 
easy to interface with. Since 
they use many of the proces- 
sor's signals, expanded local 
buses are still processor-spe- 
cific. For example, the IBM 
PC and AT buses are designed 
around the Intel 80x8x micro- 
processor architecture, and 
they have problems accommo- 
dating large memory expan- 
sions. The PC is limited to 1 
megabyte of RAM (the 640K- 
byte limit is imposed by the 
layout of the PC BIOS), and 
the AT to 16 megabytes. 

Unlike local buses, system 
buses are designed to maxi- 
mize hardware subsystem-to- 
subsystem transfers. System 
buses offer a general protocol, 
or transfer method, for system 
CPUs or peripherals to inter- 
change data. This is accom- 
plished by treating the bus as a 
resource. To get control of the 
resource, a peripheral or pro- 
cessor must request its use 
formally, in competition with 
others. With this general approach, you 
can add peripherals, special functions, 
and even full computer subsystems easily 

continued 

Ciro Cornejo is an engineer with AST Re- 
search (2121 Alton Ave. , Irvine, CA 
92714). He was born in Chile, and his in- 
terests are nature, computers, math, and 
physics. Raymond Lee, a technical advi- 
sor at AST Research, is interested in com- 
puter architecture. 



Illustration: Dave Ridley © 1987 



BYTE 1987 Extra Edition 



Inside the IBM PCs 83 



MICRO CHANNEL VERSUS NUBUS 



to a system bus. The bus integrates hard- 
ware, cards, and subsystems into one 
smoothly running machine, much as an 
operating system integrates applications 
programs. The more general the integrat- 
ing mechanism, the easier it is to add 
functionality and avoid obsolescence. 
Moreover, these buses are processor-in- 
dependent. For example, NuBus defines 
a generalized address space that requires 
no processor-specific signals for periph- 
eral or I/O accesses. 

Overview of the Buses 

The new IBM Micro Channel has evolved 
from the earlier PC and AT buses. Like 
them, it is a CPU or local bus once re- 
moved. As a local bus, it optimizes the 
host CPU-to-memory bandwidth, using a 



special transfer method termed "matched 
memory cycles," which I'll discuss later. 
It is also a system bus, in that it is treated 
as a system resource. 

Taking an opposite tack, the Apple 
NuBus is a full system bus. It is indepen- 
dent of the Macintosh IPs host processor; 
in fact, in the Mac II the motherboard is 
treated as a NuBus slot. 

Both buses create a memory-mapped 
system. Each card or hardware entity is 
addressed within this bus address space. 
The 16-bit PS/2 systems, the Models 50 
and 60, address a 24-bit space, or 16 
megabytes; the PS/2 32-bit Model 80 and 
the Macintosh II NuBus address a full 32- 
bit space, or 4 gigabytes. Like its pre- 
decessors, the Micro Channel also has a 
64K-byte I/O space. 



Table 1: A comparison of the two buses. Not all bus signals are included. 




NuBus 


Micro Channel 


Utility signals 






Reset 


RESET* 


-CHRESET 


Clock 


CLOCK* 


OSC 


Interrupt 


NMRQ*[Note1] 


-IRQ (3-7, 9-12, 14-15) 


Audio 




AUDIO, AUDIO GND 


Control signals 






Start bus cycle 


START* 


A0-A31 , M/-IO, MADE24 [Note 2] 


End bus cycle 


ACK* 


-CMD.or-MMCCMD 


Cycle definition 


TM0*,TM1* 


M/-IO, -SO, -S1 


Burst control 


[Note 3] 


-BURST, -TC 


Address size 


[Note 4] / 


-MADE 24 


Data size 


TM0*,TM1*, 


-BE0 through -BE3, TR32, -SBHE 




AD0*,AD1* 


-CDDS16[Note1], 
-CDDS32[Note1] 


Matched memory cycle 




MMC.-MMCR 


Signal returns 




CHRDYRTN.-DS16RTN, 
-DS 32 RTN 


Slot occupancy 


[Note 5] 


-CDSFDBK 


Address/data 






Address 


ADO* through AD31 * 


A0 through A31 


Data 


ADO* through AD31 * 


D0throughD31 


Arbitration 






. Request bus 


RQST* 


-PREEMPT 


Arbitration lines 


ARBO* through ARB3* 


-ARBO through -ARB3, ARB/-GNT 


Slot ID 


IDO* through ID3* 
[Note 6] 


[Note 7] 


Note 1 : Separate line for each slot or card. 




Note 2: For a memory 


refresh cycle, -REFRESH will also be used. 


Note 3: Although a burst mode is defined in NuBus, it is not used in the Apple version of 


NuBus. 






Note 4: All addresses on NuB us use 32 bits of address space. 


Note 5: The declaration ROM must respond to a 


read at the top of the slot space. 


Note 6: These lines are 


not bused. 




Note 7: ID is stored on 


card but is not used for arbitration. A separate arbitration level is 


stored on the card when it is configured 


into the system. 



Each bus entity can be defined as a 
master or a slave. A master entity can re- 
quest and get control of the bus. A master 
must own the bus to send or receive data 
from another target entity on the bus, 
which can be another master or a slave 
unit. A bus slave unit cannot own the bus, 
but it can request service through an in- 
terrupt signal to one of the bus masters. 

The masters contend for ownership of 
the bus resource via an arbitration proto- 
col, which I'll describe later. Both buses 
allow multiple masters. However, only 
the Apple NuBus provides mechanisms 
for true multiprocessing: bus and re- 
source locks. Bus locking allows a pro- 
cessor to lock a bus for exclusive access. 
With resource locking, a shared re- 
source, such as RAM on a card with its 
own local processor, is locked so that the 
local processor can't access it. Both types 
of locks are necessary to prevent one pro- 
cessor from interfering with or cor- 
rupting memory that another processor is 
using. 

While the IBM Micro Channel does 
permit multiple masters, there is not 
much to be gained in going to multiple 
host processors. This is because the 
Micro Channel is also an extension of the 
CPU bus. Processor memory operations 
tie up the Micro Channel, making the bus 
a bottleneck for the concurrent operation 
of two host processors. It should be noted 
that IBM, for efficiency, allows the host 
processor to access system motherboard 
memory without passing through the 
Micro Channel bus. 

Also hindering multiprocessing on the 
Micro Channel is the absence of any di- 
rect provisions for bus or resource lock- 
ing, although the 80386 in the IBM PS/2 
Model 80 has hardware for bus locking. 
While not intended for true host-level 
multiprocessing, the Micro Channel does 
offer a general interface for drop-in co- 
processing. The PS/2 host processors can 
be easily supplemented by powerful co- 
processors, such as array and floating- 
point processors, or AI compute engines. 

Timing the Critical Element 

As a logic designer once said, "There are 
three important aspects of a digital design 
that must be carefully monitored: timing, 
timing, and timing. " This is still true, es- 
pecially for computer and bus designs. 

Difficulties usually start when one 
block of logic has to talk to another block, 
especially if they each rely on different 
clock signals. This requires that the sig- 
nals be synchronized to be passed from 
one logic block to another. A transmit- 
ting signal from a flip-flop strobed with 
one clock must be picked up and strobed 
into a receiving flip-flop using a second 
clock. The two clocks, transmitting and 



84 Inside the IBM PCs • BYTE 1987 Extra Edition 



MICRO CHANNEL VERSUS NUBUS 



receiving, are asynchronous; no fixed re- 
lationship exists between them. Thus, it 
can take one receiving clock period to 
synch up to the transmitting data. 

Buses, like logic, define synchronous 
or asynchronous interactions. In a syn- 
chronous bus, all interactions are defined 
in terms of a fixed bus clock or cycle. The 
bus clock edges define when data is valid 
and when to strobe it. Moreover, all 
transactions are in multiples of these bus 
cycles. The Apple NuBus is a synchro- 
nous bus. 

Instead of relying on a fixed clock, an 
asynchronous bus is controlled by hand- 
shaking signals. A command signal is 
sent to a target adapter or card that re- 
sponds with an acknowledge signal upon 
completion of a data transfer. All bus tim- 
ing is dependent on the signals them- 
selves. The IBM Micro Channel is an 
asynchronous bus, although it supports 
certain synchronous transfers. 

Both the IBM Micro Channel and the 
Apple NuBus pass a common clock 
through the bus to minimize the synchro- 
nization problem among bus entities. 
However, there is a clock mismatch be- 
tween the Macintosh II's local bus and 
NuBus, requiring synchronization before 
a transfer can occur. 

The Macintosh II's 68020 runs with a 
15.7-MHz clock, while NuBus runs with 
a 10-MHz clock. Synchronization delays 
between these bus clocks is minimized by 
using high-frequency clock signals. The 
NuBus 10-MHz clock is divided down 
from a 40-MHz crystal; the 68020 15.7- 
MHz clock is divided down from a 3 1 .4- 
MHz crystal. The cost of clock synchro- 
nization is thus held to one clock period, 
either 25 or 31.5 nanoseconds. Clock 
synchronization is accomplished through 
the application-specific integrated circuit 
(ASIC)— the "GLU" custom gate array 
on the Mac II motherboard— and the Nu- 
Bus timing control logic. 

Synching up between the bus processes 
(i.e., bus reads or writes) also exacts a 
time penalty. The requesting bus must . 
wait for the other bus to complete its cur- 
rent transaction cycle before it can at- 
tempt a transfer. All NuBus operations 
are defined with respect to its 10-MHz 
system clock. This clock has a 25 percent 
duty cycle: It is false (or high) for 75 ns 
and true (or low) for 25 ns. 

Normally, a transfer from NuBus to 
the local bus takes a full 68020 instruc- 
tion cycle (about 400 to 500 ns) to synch 
up. Going the other way, a Macintosh II 
request can take a typical NuBus trans- 
action of 2 bus cycles (about 200 ns) to 
synch. It must be noted that this type of 
delay is not out of the ordinary; it is 
the time penalty paid by the communica- 
tions protocol between the CPU bus and 



Micro Channel Timing 



The IBM Micro Channel is an asyn- 
chronous bus. Handshake signals 
are used to initiate processes, signal 
availability of addresses and data, and 
completion of operations. It is the signal 
changes and the logic's response to them 
that drives this asynchronous bus. 

The keys to this cycle are the -ADL 
and -CMD lines that define when the ad- 
dress is valid and when the data is valid. 
Their trailing edges can be used to 
strobe addresses and data as well. CD 
CHRDY is the mechanism for extending 
bus cycles. When this signal goes high, 
it triggers -CMD, which ends the bus 
cycle. See figure A for the sequence of a 
Micro Channel Basic Write cycle. Here 
is a short description of the sequence: 

1 . The cycle begins with the address and 
definition lines (-S0, -SI, M/-IO, 
MADE 24, TR32) defining the bus op- 
eration (read, write, memory, or I/O 
cycles), addressing mode (24-bit), and 
32-bit transfers. 



2. -ADL is asserted and defines a stable 
address. 

3. The addressed card responds by as- 
serting -CD 16, -CD 32, and -CD 
SFDBK. -CD 16 is asserted for 16- and 
32-bit operations, -CD 32 for 32-bit op- 
erations. The card asserts its -CD 
SFDBK line to. acknowledge being ad- 
dressed. GD CHRDY is deasserted to 
extend the cycle, if necessary. 

4. The data appears on the bus. 

5. The -CMD line is asserted, indicating 
that valid data is on the bus. -ADL is 
deasserted. 

6. If CD CHRDY was deasserted, the 
card drives CD CHRDY active after it 
has read the data. 

7. -CMD is deasserted, ending the bus 
cycle. 

Other masters can be contending for 
the bus ownership during the bus transac- 
tioa For more details on the Micro Chan- 
nel, see the article "The 32-bit Micro 
Channel" by John Shiell on page 59. 



Address M/-IO 
Made 24 TR 32 
-Refresh _ SQ 

-S1 

-ADL 

CD CHRDY 

-CD DS 16/32 

-CD SFDBK 

DATA 
-CMD 



1 2 
I I 
J_J L 



3 4 5 

I 



I I 

J_L 



I 



Wait state 



Valid data 



Figure A: A Micro Channel Basic Write cycle. 



the system bus. 

The IBM Micro Channel is an asyn- 
chronous bus, and all operations are 
gauged by the transmitted and returned 
signals. A common 14.3-MHz clock, 
OSC, is provided on the bus, eliminating 
the problem of signal synching. More- 
over, a delayed signal will be picked up 



by the next clock, providing a built-in 
safety net for bus operations. 

Bus to Bus 

To distinguish between the two sets of bus 
signals, I'll stick to each bus's naming 
conventions. NuBus active low signals 

continued 



BYTE 1987 Extra Edition 



Inside the IBM PCs 85 



MICRO CHANNEL VERSUS NUBUS 



are labeled as signal name*, while IBM 

uses its own convention for labeling an 
active low signal: -signal name. 

The NuBus is a simple and elegant bus 
that matches Apple's minimalist ap- 
proach toward hardware. The NuBus has 
only 5 1 signals, including two parity sig- 
nals not used by Apple. The IBM Micro 
Channel has 77 and 111 signals for the 
16- and 32-bit versions, respectively. All 
Micro Channel signals are TTL-logic- 
compatible. Table 1 compares signals be- 
tween the NuBus and the Micro Channel, 
and you can see a great deal of similarity 
between the two buses. The arbitration 
and utility signals almost match. 

But there are differences. NuBus is 
multiplexed, sharing data and address on 
common lines, while the Micro Channel 
is nonmultiplexed, providing lines for 
both address and data. The IBM Micro 
Channel defines a number of discrete in- 
terrupts (-IRQ 3-7, 9-12, and 14-15) 
that can be shared among the boards. The 
Apple implementation, on the other 
hand, defines an interrupt (NMRQ*) per 
slot that is fed separately into the Macin- 
tosh II interrupt logic for processing. 

The Micro Channel has a number of 
signals for coordinating asynchronous 
handshakes: The signals -ADL, -CMD, 
and -MMC CMD provide the basic bus 
handshake edges. Hardware signals are 



also used to delineate bus sizing (-BE0 
through -BE3), 32-bit operation (-CD DS 
32(n)), and 24-bit addressing (MADE 
24). See the text box "Micro Channel 
Timing" on page 85 for more information 
on the bus cycles. 

A special set of signals (-MMC, 
-MMCR, and -MMR CMD) is used in 
matched memory cycles to ensure fast 
CPU-to-memory accesses for the 80386. 
A matched memory cycle is started by the 
target slave returning an -MMCR request 
signal after being addressed by the sys- 
tem CPU. The 80386 responds by driv- 
ing the faster -MMCR CMD handshake 
signal instead of the -CMD during a bus 
cycle. Matched memory cycles provide a 
bus read transaction in three clocks at 16 
MHz, or 187.5 ns, while standard cycles 
using the -CMD handshake signal run 
four or more system clocks for a mini- 
mum of 250 ns. Matched memory cycles 
can be run with both 16- and 32-bit chan- 
nel devices. 

In contrast, the NuBus synchronous 
operations are relatively simple, requir- 
ing no special signals or exception pro- 
cessing. NuBus timing, however, is more 
stringent than the Micro Channel's, fit- 
ting sending and strobing of signals and 
data within 75 ns in the 100-ns clock 
cycle. See the text box "Apple NuBus 
Timing" below for more details on 



NuBus bus cycles. 

NuBus defines a byte/word structure 
that matches the Intel 80x8x addressing 
schemes (byte order 0, 1 , 2, 3), not the 
Macintosh's 68020 scheme (byte order 3, 
2, 1,0). The b u s transceivers are wired to 
map the data from NuBus order into the 
Macintosh byte order. Bus sizing is han- 
dled automatically; the bus handles byte 
(8 bits), half-word (16 bits) and word 
(32-bits) sizes. 

The NuBus specification defines a 
block, or burst mode, that can move up to 
sixteen 32-bit words in a transaction, but 
Apple has not implemented it in the Mac 
II NuBus design. IBM, however, has im- 
plemented a burst mode in the Micro 
Channel in conjunction with direct mem- 
ory access. This DMA burst capability 
allows large blocks of data to be moved 
while minimizing bus overhead. In fact, 
each peripheral on the channel can be 
viewed as a DMA channel. 

When accessed by the DMA control- 
ler, a card can assert -BURST, guaran- 
teeing bus ownership for block transfers. 
Thereafter, data is transferred using only 
the -CMD signal to define data valid for 
both the read and write stages. The block 
transfer ends when the card deasserts the 
-BURST line for the last cycle. For pre- 
defined transfers, the DMA controller 

continued 



Apple NuBus Timing 



The Apple NuBus is a synchronous 
bus; all operations are defined with 
respect to its basic clock cycle. The 
clock runs at 10 MHz, with a 100-ns pe- 
riod and a 25 percent duty cycle. Two 
edges of the clock serve the bus. The ris- 
ing edge at the start of the period is the 
driving edge, strobing signals and ad- 
dress onto the bus, and the falling edge, 
75 ns later, is the sampling edge for tak- 
ing information off the bus. 

Bus transactions are made up of bus 
cycles or clock periods. A transaction 
can be a single cycle or multiple cycles, 
especially if a slower peripheral is in- 
volved. Delays are added by inserting 
additional bus cycles. The timing dia- 
gram in figure B shows the basic write 
transaction, which consists of a START 
cycle, any intervening bus cycles, and an 
ACK cycle. Here is the sequence: 

1. START* is asserted, indicating the 
start of a bus transaction. The master 
places addresses on the AD31* through 
ADO* lines; and the TM0*, TM1* lines 
define the type of transaction. 

2. All cards read the addresses. The 



slave is identified by the address. 

3. The master drives the data onto the 
AD3 1 * through ADO* lines. 

4. The slave reads the data off the bus. 

5. The slave asserts ACK* to signal the 
end of the transaction and places the ap- 
propriate status codes onto TM0* and 
TM1*. 

6. The master releases the AD31* 



through ADO* lines, and the slave re- 
leases the ACK* and status lines. 

Other masters can be competing for the 
bus during the bus transaction. 

For more information on NuBus, see 
"The Apple Macintosh II" by Gregg 
Williams and Tom Thompson in the 
April BYTE. 



CLK* 

ADx* 

TMx* 

START* 

ACK* 



- < Address > C 

i 
- < Mode ) {— 



\ 



i 







i 


Data 


D- 




1 




{ Status code j)> — 

i 


* 




\ 


i 

i 
i 


* 


-/ 



Figure B: A Nubus write cycle. 



86 Inside the IBM PCs • BYTE 1987 Extra Edition 



Assemblers/Simulators/Compilers 



Macro Assemblers/ 
Cross Assemblers 

for Series 3.0 

Series 3 requires at least 256k 
of memory to run under MSDOS 
& CP/M86 and 54kTPAof mem- 
ory to run CP/M80. Series 3 
products have: Full Listing 
Control, Conditional Assembly & 
Built in Cross Reference. There is 
Unlimited Program Size, Number 
ofSymbolsandMacros.TheLink- 
ers output: Intel Hex, Extended 
Intel Hex, Tektronix Hex, and 
Motorola S19, S28, S37 formats. 

Macro Assemblers/ 
Cross Assemblers 

for Series 4.0 

Series 4 requires 512k of memory 
to run. These products have all 
the features of Series 3 plus: 32 
Character Labels, Library and 
User Defined Sections. There is 
one Linker on Series 4 which 
outputs all the same formats as 
Series 3. Series 4 runs under 
MSDOS, UNIX, VMS and ULTRIX. 

Simulator-Debuggers 

The Simulator-Debuggers run 
with 256k of memory. The Simu- 
lator has 16 Breakpoints with 
optional Counter Field. The 
Symbol Table is limited only by 
the amount of memory. Buffers of 
256 bytes may be opened for I/O 
ports. The Simulators are avail- 
ablefor MSDOS, UNIX, VMS and 
ULTRIX. 

C Compilers 

The C Compilers support in-line 
assembly language and ROMable 
code, and includes the following: 
Macro Processor, full Floating 
Point support, complete Assem- 
bler, Linker, and Libraries. 





Macro Assemblers 


Simulator- 






Cross Assemblers 


Debuggers 


C Compilers 


Series 3 


Series 4 


MSDOS 


VMS 


MSDOS 


VMS 


CP/MZ-80 




VMS 


Software 


CP/M86 




Zeus 




Zeus 




Zeus 


Product 


MSDOS 


MSDOS 


ULTRIX 




ULTRIX 




ULTRIX 


Super 8 




199.50 


995.00 


149.50 


499.50 






Z-8 


199.50 


199.50 


995.00 


149.50 


499.50 






Z-80 


199.50 


199.50 


995.00 


149.50 


499.50 


500.00 


2000.00 


Z-280 




299.50 


1250.00 










Z-8000 


299.50 


299.50 


1250.00 










1802 


199.50 














6301 


199.50 


199.50 


995.00 


149.50 


499.50 






64180 


199.50 


199.50 


995.00 






500.00 


2000.00 


6501 


199.50 


199.50 


995.00 










6502 


199.50 


199.50 


995.00 










65c02 


199.50 


199.50 


995.00 










65c816 




299.50 


1250.00 










6800,2,8 


199.50 


199.50 


995.00 


149.50 


499.50 






6801,3 


199.50 


199.50 


995.00 


149.50 


499.50 






6804 


199.50 


199.50 


995.00 










6805 


199.50 


199.50 


995.00 










6809 


199.50 


199.50 


995.00 


149.50 


499.50 






68c11 


199.50 


199.50 


995.00 










68000,8,10 


299.50 


299.50 


1250.00 










68020 




399.50 


1500.00 






700.00 


2500.00 


8400/cOO 


199.50 


199.50 


995.00 










80452 




199.50 


995.00 










8044/51 


199.50 


199.50 


995.00 


149.50 


499.50 






80515 




199.50 


995.00 










8080 


199.50 


199.50 


995.00 


149.50 


499.50 






8085 


199.50 


199.50 


995.00 


149.50 


499.50 






8086/87/88 


99.50 


99.50 


1250.00 










8096 


199.50 


199.50 


1250.00 










80186/286 


199.50 


199.50 


1250.00 










83c351 




199.50 


995.00 










8748 


199.50 


199.50 


995.00 


149.50 


499.50 






V20/30 


199.50 


199.50 


1250.00 










Cops 400 


199.50 














F8/3870 


199.50 














NCR32 


399.50 














NEC7500 


199.50 














NSC800 


199.50 


199.50 


995.00 


149.50 


499.50 


500.00 


2000.00 


32000 


399.50 















More formats available 



Name . 



(Please Print) 



Company . 
Address _ 



City . 



. State . 



-Zip. 



Phone . 



Educational discount available. 
To order, call toll free in U.S. (including HI, PR and VI): 

1 800 843-8144 

In Colorado: (303) 369-5001 

TELEX: 752659/ AD 

For more details, ask for a free brochure. 

(Shipping is $20.00 per unit for overseas orders. Toll Free number does 



not apply to overseas. 2500AD pays COD charges.) 



Product . 
Series _ 



Shipping $ . 

Signature _ 
Check D 



MC/VISA # . 



Expiration Date . 



. Operating System . 

.Amount $ 

. Total $ 



COD (U.S. Only) □ 



250WDSCFM4REINC 

17200 East Ohio Drive 
Aurora, Colorado 80017 
(303) 369-5001 



Circle 2 on Reader Service Card 



MICRO CHANNEL VERSUS NUBUS 



marks the last cycle by asserting the 
terminal count line (-TC). 

A DMA controller can transfer 64K 
bytes of data between a peripheral and 
memory, the same as in an IBM PC. The 
PS/2 DMA controller can handle 24-bit 
read and write addresses, unlike the PC's 
20-bit address limit. Unfortunately, this 
DMA capability is limited to transfers of 
8- or 16-bit data. 

Bus Address Space 

Both the NuBus and the Micro Channel 
map bus addresses into a full bus address 
space that includes system memory and 
ROM, setup ROM, and device buffer 
space. Analogous to a CPU bus, these 
buses provide access to locations in that 
space. 

The IBM implementation maps into a 
16-megabyte or a 4-gigabyte address 
space. The bus address space is the same 
as the CPU address space. In this respect, 
the Micro Channel acts as a local CPU 
bus. The system board RAM, either 
512K bytes or 640K bytes, starts at 00000 



hexadecimal. The 128K-byte video RAM 
and channel ROM are mapped into the 
lower address pages. Topping off the 
memory space at EOOOOh through 
FFFFFh is the 128K bytes of system 
board ROM or RAM, depending upon 
how the computer's resources have been 
allocated. RAM memory mappings 
above address FFFFFh are managed in 1- 
megabyte chunks. See figure 1 for a 
memory map of an IBM PS/2 Model 80. 
Bits in a memory-encoding register and a 
split-address register determine how and 
where memory will be allocated. 

Bus memory space for Apple NuBus 
implementation doesn't match the Mac- 
intosh II's 68020 processor address 
space. The upper one-sixteenth, or 256 
megabytes, of the NuBus 4-gigabyte ad- 
dress space is called the slot space. This 
slot space is divided into 16 sections, one 
for each NuBus slot, and each slot owns 
16 megabytes of the space. The top of 
each slot address space is reserved for a 
slot-declaration ROM that is accessed at 
that address. The slot a card occupies on 



System board ROM 






Unused 



System board RAM 



Channel RAM 



System board RAM 



System board RAM or ROM - * 



Channel ROM 



System board video RAM 



System board RAM (or unused) - * 



System board RAM 



FFFF FFFF 
FFFE 0000 

0010 0000 + SBR + CR + 384Kor512K 
Used as system board RAM if enable 
split bit = 0. 

Unused if enable split bit = 1. 
RAM size is 384K bytes if 640 bit = 0, 
512K bytes if 640 bit = 1. 

0010 0000 + SBR + CR 
0010 0000 + SBR 



0010 0000 
r 000F FFFF 



000E 0000 
000D FFFF 

000C 0000 
000B FFFF 

000A0000 
0009 FFFF 



0008 0000 
0007 FFFF 



0000 0000 



f System ROM if ROM 
J enable bit = 1. 
~S System RAM if ROM 
L enable bit = 0. 



r Used as system board 
-^ RAM if 640 bit = 0. 
V Unused if 640 bit = 1. 



Figure 1 : The PS/2 Model 80 memory map. The memory arrangement is 
determined by the contents of the memory-encoding and split-address registers. SBR 
is system board RAM; CR is channel RAM. System board RAM and channel RAM 
are allocated in I -megabyte chunks above address FFFFFh, with the exception of the 
split-system RAM. The system ROM at addresses E0000 through FFFFF is a copy 
of the system ROM at addresses FFFE0000 through FFFFFFFF. 



NuBus determines its slot identification, 
which in turn determines its arbitration 
level and its location in the slot address 
space. 

NuBus defines 16 slots, but the Macin- 
tosh II provides six. The six slots have 
IDs of 9h through Eh. Slot is the Mac II 
motherboard, and slot F (which does not 
have a physical slot) is reserved. One slot 
becomes the video buffer for the ma- 
chine, depending upon which slot the 
video card is placed in. Slots 1 through 8 
are unused, because no room exists in the 
24-bit address space for them. For this 
reason, the existing slots are limited to 1 
megabyte of slot space instead of 16 
megabytes. 

Apple's implementation of NuBus 
allows a slot to own a "superslot" space 
of 256 megabytes, as well as its 16-mega- 
byte slot space at the top of NuBus mem- 
ory . We won't discuss superslots further, 
since they aren't accessible by the Mac II, 
although you should note that other cards 
on NuBus could use these areas. See fig- 
ure 2 for a detailed look at the Macintosh 
II memory map and its arrangement in 
the NuBus address space. 

The 24-bit address space for the Mac- 
intosh II starts at Oh with 8 megabytes of 
RAM, followed by 1 megabyte of ROM, 
then 6 megabytes of slot space, and 
topped by a 1 -megabyte region of mem- 
ory-mapped I/O devices. The Mac II's 
24-bit address space is mapped into the 
32-bit NuBus address space by placing 
the RAM, ROM, and I/O areas at the bot- 
tom of the NuBus address space. How- 
ever, from the NuBus side, the Mac II's 
ROM appears at addresses F0800000h to 
FOFFFFFFh, and the I/O area maps to 
FOOOOOOOh through F07FFFFFh. 

Under this scheme, the maximum 
RAM that can be accessed on the local 
bus is 8 megabytes, using 1 -megabyte sin- 
gle in-line memory modules (SIMMs). 
The Mac II's motherboard RAM can be 
expanded to 128 megabytes if and when 
higher-density SIMMs are available. 
However, you can add more RAM to the 
system through the NuBus slots, and ven- 
dors are now supplying NuBus memory 
cards. 

The Macintosh II is currently re- 
stricted to 24-bit addressing or 16 mega- 
bytes when running with the current 
operating system. An Apple Unix imple- 
mentation (A/UX) is in the works that 
will handle 32-bit addressing and re- 
quires a memory-management unit for 
virtual-memory processing. 

Bus Ownership 

Both buses use arbitration to allocate 
ownership of the bus to a single master 
when several masters request use of the 

continued 



Inside the IBM PCs • BYTE 1987 Extra Edition 




SymplHJtiy 



mm 




Why Does 

The Genius'Display 

WorkSoWell? 





iffi 

rFtfHWFFF 




Because 

AllTheseWoik 

SoWellWth 



® 



The Gerdus! 



See us at Booth #4316 

COfllDEH7M'87 

November 2-6, 1987 

Las Vegas Convention Center 

Las Vegas, Nevada 



The Genius® Full-page Display: 
66 lines in very high resolution - 1 00 dots/inch 

THE GENIUS Display System enables you to 
work with more programs in a full page format 
than any other monitor. 

Desktop publishing, word processing and 
spread sheets are just a few of the applications 
that work better with THE GENIUS. 

THE GENIUS Display System is a 15" high 
resolution monitor and adapter card. 

With over 7,500 in use, THE GENIUS is 
available today to add a new dimension to 
office productivity. 

Mod Display Systemsjnc 

1310 Vermillion St., P.O. Box 455, Hastings, MN 55033 
Telex: 4310015 Fax: (612) 437-7325 Phone: (612) 437-2233 
Toll Free: 800-328-9524 

The Genius s FuE-ftge Display 



Circle 132 on Reader Service Card 



BYTE 1987 Extra Edition • Inside the IBM PCs 89 



MICRO CHANNEL VERSUS NUBUS 



bus. Arbitration typically takes place 
concurrently with bus transactions on 
both buses, but the Micro Channel allows 
a system configuration that restricts arbi- 
tration to nonconcurrent operation. 

NuBus arbitrations take two full bus 
cycles, or 200 ns, to select the next bus 
owner. On the Micro Channel, arbitra- 
tions typically take 300 ns. 

Each bus uses distributed arbitration to 
select the next bus owner; that is, logic on 
each card outputs the arbitration level on 
four arbitration lines (either ARBO* 
through ARB3*, or -ARBO through 
-ARB3) and determines the winner of 
each arbitration contest based on the sig- 
nals on these lines. The arbitration level 
is determined in NuBus by the card's slot 
ID, with being the lowest priority and 
Fh being the highest. For the Micro 
Channel, the arbitration level is stored on 
the card when it is configured into the 



system. The highest priority a card can 
have is level 0, and the lowest is Fh. See 
table 2 for a comparison of the arbitration 
levels. The Micro Channel also has a 
Central Arbitration Control Point, which 
is some logic on the PS/2 motherboard, 
that controls the start and winner of an ar- 
bitration contest. 

To compete for ownership, the master 
asserts its request line (RQST* for Nu- 
Bus, -PREEMPT for Micro Channel). 
For the Micro Channel, the Central Arbi- 
tration Control Point drives the ARB/ 
-GNT line to the arbitrate state, allowing 
the arbitration contest to begin. Each 
master then places its arbitration level 
onto the 4-bit arbitration bus. If a com- 
peting master has output a higher level, 
the master will cease to compete for own- 
ership for the next bus transaction. It 
will, however, hold its asserted request 
line to compete for the following bus 



transaction. On NuBus, at this point, the 
winner of the contest owns the bus. On 
the Micro Channel, the Central Arbitra- 
tion Control Point lowers the ARB/-GNT 
line to the -GNT state, allowing the 
winner to own the bus. 

Both buses ensure fairness by pre- 
venting a higher-priority-level card or 
channel from continuously withholding 
ownership of the bus from lower-priority- 
level entities. Card or channel logic pre- 
vents the card just serviced from request- 
ing bus ownership until all pending 
requests are honored. In a sense, there 
are no arbitration priority levels for Nu- 
Bus cards, since the NuBus strictly en- 
forces fair bus access. However, for spe- 
cial cases, a channel can be configured 
on the Micro Channel without fairness to 
ensure continued ownership of the bus. 

The NuBus has explicit mechanisms 

continued 







16 megabytes 




















256 megabytes 


slotF 
FFFF FFFF J 
FFOO FFFF**""^ 
FEFF FFFF 

FxFF FFFF 
FxOO 0000 

F900 0000 
F8FF FFFF 

F100 0000 
FOFF FFFF 
FOOO 0000 








f 


Unused 


FxFF FFFF 

FxFO 0000 
FxEF FFFF 

FxOO 0000 


Declaration ROM 


*N 


^* 




Slotx • 






r ^. 


FFFF 




^ 






4 gigabytes 


FFFF 


-**< 


















) 




FOOO 
EFFF 

9000 
8FFF 

6000 
5FFF 
4FFF 
5000 
4000 
3FFF 

0000 


0000 




Unused 


FF FFFF 
F0 0000 
EF FFFF 

90 0000 
8F FFFF 
80 0000 
7F FFFF 

00 0000 


NuBus slot 


Super slots 


FFFF 


SlotO 


0000 


Slot space 


1 6 megabytes 




Unused 


FFFF 

0000 

FFFF 

FFFF 

0000 

0000 

FFFF 

Note: The NuBus address space is identical 
to the Mac II 32-bit physical address 
space, with the following exceptions: 
0000 R( ^ M address s P ace: 


I/O •- 




I/O 










ROM 


Slots 










RAM 


ROM _ 








RAM •- 




>I 
















Macintosh II 
24-bit physical 
address space 










Macintosh II 
32-bit physical 
address space 






F 
/O 

F 


080 0000-FOFF 

address space: 
000 0000-F07F 


FFFF 
FFFF 



Figure 2: The Macintosh II memory map. The memory in the super slot space and 15 megabytes of the slot space are not 
available to the Macintosh II, but NuBus cards can access these regions. 



90 Inside the IBM PCs • BYTE 1987 Extra Edition 



File finding made easy! 



Command Function 
display 

Directory struct up 
area 



Pointer bar to select a file 



English file description 
display area (Tag) 



«0£ toAy 



fC&SS U 1.4.48 Send: Falh ft Filer*** 



Root Bir: Brive C: 




/ 



/ 



1-2-3 Work Files 

Brief Editor 

tticrosoft Nord 

FticroSoft Words Data Directory 

Norton Utilities 

PC 30S 3.2 Files 

PCEasy Files 

Probe Debugger 

Reflex Data Base Progran 

Tubo Pascal 

Turbo ftssewbler 

Auto Execution Progran 

corttAHD .cm 

LASER .BAT 
OBCEC, BAX 

ific .svs 

J[l 



5:24:19 



ftlittlMlffi 




Directory 

Directory 

Directory 

Directory 

Directory 

Directory 

Directory 

Directory 

Directory 

Directory 

Directory 

Directory 

Prograw 

Program 

Prograw 

Backup 

Syste« 



<DIR> 
<DIR> 
<D1R> 
<BiR> 
<BIK> 
<DIR> 
<BIR> 
<DIR> 
<DIR> 
<D1R> 
<BIR> 
<DIR> 



23,791 

128 

41? 

98 



123 

1-2-3HBK. 
BRIEF '*; 
MORB 

nCRSFTHR* 
KORTOH . 
BOS 

PCEASV . 
PROBE II 
REFLEX . 
TURBO . 
TURBOASTt 
413| AUTOEXEC. BAT 
COItlANB'-.'COfl 
LASER .BAT 
AUTOEXEC. BAK 
CONFIG ,$¥$ 



TOTAL 24,84? of 24,84?— 



Number of files visible in directory/ 



Total number of files in directory 



^CIAI-- 



' Select file name format 
to send to application 

""Menu Function display 



DOS Filename area 



Disk space used by both 
' displayed files and 
masked files 



Disk space used by 
displayed files 



TranSec PCEasy II™ is a ram-resi- 
dent, lightning quick, file finder. 
Target the file you want— never 
miss— no matter which drive, or 
directory. 

Tag it. Bag it. 

Tag any DOS file or directory with a 
3 2 -character English file description 
(name) by simply pointing to the 
file or directory with the cursor bar 
and pressing the edit key ( F2 ). It 
keeps each directory of tags sorted 
in any of five different ways. You can 
selectively control the files you dis- 
play in a directory, thus hiding from 
view files of no interest. It's in the 
bag to move, copy, or delete one or 
more selected files from within any 
application. 

" • $25.00 coupon redeemable for one 
of the following: 

• $25.00 savings bond. 

• Free PCEasy II upgrade. 

• $25.00 off the price of another 
TranSec product. 



Hot Key and No Key 
Hot Key! 

To find a file just pop up the direc- 
tory screen from anywhere, at the 
DOS prompt or in the middle of a 
program. Better yet, integrate it 
with Lotus 1-2-3™, Microsoft 
Word™, and WordPerfect™ with the 
included integrators. Then, when 
you perform a file retrieval com- 
mand it pops-up automatically. We 
call it No Key Hot Key! 



Use it so you won't 
Lose it. 

PCEasy 1 1 is designed to make your 
computer easier to USE. No more 
DIRing to find a file with an acro- 
nym you can't remember. No more 
lost files. Best of all PCEASY II is 
just $74.95* with a 30 day money- 
back guarantee. 

Order Direct Today 



Point, Peek and Load. 1-800 423-0772 



To load a file into an application, 
just point to the desired file and 
press enter. Instantly the file loads 
into your application. You can peek 
at the contents of any file by point- 
ing at it and typing a question mark. 
It displays the file contents one 
page-at-a-time in ASCII or HEX. You 
can also change the file's attributes 
if you desire. 

Circle 229 on Reader Service Card 



(In FL 305/276-1500) 
for IBM PC, XT, AT & 100% compat- 
ibles with a hard disk, and EGA, 
CGA, or Hercules card. 'Add $5.00 
shipping and handling U.S., SI 5.00 
Foreign. Visa, MasterCard, and 
COD's (Sorry no PO's) or send 
Check or Monev Order to: 
TranSec Systems, Inc. 
220 Congress Park Drive, Ste. 200, 
Delray Beach, Florida 33445 



MICRO CHANNEL VERSUS NUBUS 



for continued bus and resource owner- 
ship. Using an attention cycle (START* 
and ACK* both asserted), a master can 
request continuing bus ownership. It can 
also request a resource lock. A resource 
such as a memory card can be locked, 
denying access to any other master. 

Both locks are extremely useful for 
multiprocessing; they allow a processor 
to do an uninterrupted test and set, as well 
as control access to a critical resource. 
For example, the Macintosh II mother- 
board uses bus locking to lock out the 
NuBus for critical local processing, in- 
cluding disk transfers and interrupt 
processing. 

Card Configuration 

Both the IBM Micro Channel and the 
Apple NuBus define high-level mecha- 
nisms to integrate cards or devices into 
the bus system. This eliminates the need 
for jumpers or switches to set either a 
card's interrupt level or its address space, 
which is the cause of a lot of bus prob- 
lems on typical microcomputer systems. 
The Micro Channel's Programmable 
Option Select (POS) eliminates switches 
from the system board and adapters by re- 
placing them with programmable regis- 
ters. Automatic configuration routines 
store the POS data into a battery-powered 
CMOS memory for system configuration 
and operations. The configuration util- 
ities rely on adapter description files that 
contain the configuration data for a card. 
Configuration files define system opera- 



tion, including system memory maps, 
video-processing options, and the indi- 
vidual adapter configurations. 

At boot-up, the PS/2 Model 80 first 
validates the contents of the POS memory 
by examining a check character stored 
there. If the memory passes this test, the 
system then selects a card using the -CD 
SETUP lines. The card responds with its 
ID number. The system then loads the ap- 
propriate configuration data from CMOS 
memory into the card, as determined by 
the card's ID. This data sets the card's ar- 
bitration level and fairness, the address 
range of the card's I/O ROM, and the I/O 
address range. Cards that fail to config- 
ure properly are disabled by the system. 

The Macintosh II relies on a slot man- 
ager to configure and maintain NuBus 
cards. Each card is required to have a spe- 
cial declaration ROM that holds the card- 
specific configuration information. In- 
formation in the declaration ROM in- 
cludes byte lanes (which bytes of the 
NuBus data path are used), a test pattern, 
a revision level, a ROM cyclic redundan- 
cy check for validating the contents of the 
declaration ROM, and a resource direc- 
tory. The resource directory points to 
various resource lists, such as the device 
icon, the device boot record, and the 
driver directory, which in turn points to 
blocks of code for the driver. The slot 
manager reads the declaration code at 
boot-up to configure the card into the sys- 
tem and installs any drivers or interrupt 
routines into system memory. The slot 



Table 2: The priority levels for the two buses and their device assignments. 


The priority levels are programmed into Micro Channel cards when they are 


configured into the system; NuBus priorities depend upon the slot the card is in. 


Arbitration 


Micro Channel 


Apple NuBus Arbitration 


level 








level 


(MicroChannel) 








(NuBus) 






Device 




Device 




Value 


assignment 


Value 


assignment 


Highest 


-2 

-1 


Memory refresh 
NMI 


-- 


Lowest 







DMA channel 





Motherboard 




1 


DMA channel 1 


1 


No slot 




2 


DMA channel 2 


2 


No slot 




3 


DMA channel 3 


3 


No slot 




4 


DMA channel 4 


4 


No slot 




5 


DMA channel 5 


5 


No slot 




6 


DMA channel 6 


6 


No slot 




7 


DMA channel 7 


7 


No slot 




8 


Reserved 


8 


No slot 




9 


Reserved 


9 


Slot 9 




A 


Reserved 


A 


Slot A 




B 


Reserved 


B 


SlotB 




C 


Reserved 


C 


SlotC 




D 


Reserved 


D 


SlotD 




E 


Reserved 


E 


SlotE 


Lowest 


F 


System CPU 


F 


Reserved Highest 



manager can also recognize a card as a 
bootable device and transfer control to 
the card when the system starts up. A 
card that fails to configure properly will 
be ignored, or a system error is posted. 

A Future with a Past 

As you can see, both buses break new 
ground to optimize bus performance and 
minimize the user's effort to add a new 
card to the system. However, these buses 
must also deal with their past: providing 
compatibility with the existing market of 
software and hardware. 

IBM faced the dilemma of maintaining 
compatibility with existing AT bus cards 
and limiting bus throughput to about 8 
MHz, or redesigning the bus to optimize 
throughput at the expense of hardware 
compatibility. Looking toward a future of 
higher-speed processors and computing 
needs that require the handling of vast 
amounts of data, IBM chose to redesign 
the bus. However, the Micro Channel is, 
in a sense, still a CPU bus; throughput is 
optimized, since few bus clocks are lost 
synchronizing dissimilar components in 
the system. Its asynchronous nature 
allows future cards, operating at those 
higher speeds, to be installed with little to 
no change to the PS/2 system, while bus 
operations on NuBus are bound to its 10- 
MHz clock. 

However, since the Micro Channel is a 
CPU bus, it's difficult to allow for multi- 
ple processors on the bus without inter- 
fering with the 80386's operation. Nu- 
Bus, being a system bus, readily allows 
other processors to operate on it. Cards 
on NuBus can communicate and share 
data with one another without interfering 
with operations on the Mac IPs local bus. 
In fact, AST Research offers a NuBus 
card that is essentially an IBM PC AT 
that runs independently in the Macintosh 
II but can share data with the 68020 CPU 
when necessary. Finally, the slot man- 
ager in the Mac II allows a NuBus card to 
be a boot device. You could drop a Nu- 
Bus card with the next-generation CPU 
into a Mac II and let it take control of the 
machine— the ultimate in hardware ex- 
pandability. 

Both machines still have some of their 
past built into them. A look at the mem- 
ory maps shows that both systems were 
designed to be compatible with their cur- 
rent operating systems, while providing a 
gateway to the next generation of soft- 
ware. The Macintosh II is the first ma- 
chine in the Macintosh line to have slots, 
so Apple at least did not have to confront 
the problem of bus compatibility. But 
there's a certain irony in the fact that 
Apple must migrate from a 24-bit to a 32- 
bit operating system, similar to what IBM 
faces in the move to OS/2. ■ 



92 Inside the IBM PCs • B Y T E 1987 Extra Edition 



IB 




J) THE SOFTWARE LINK 



A Number of Reasons A Number 




1 Designed 
• for the 80386 There's a 

revolution taking place in desktop computing. A revolution 
that's been launched by a square wafer of silicon known as the 
80386 microprocessor chip. It puts minicomputer potential at 
PC users' fingertips. It's a fact that virtually every leading PC 
manufacturer has built a "box" around this chip. And it's a fact 
that the <{ New Operating System" will, supposedly, even run 
on it. But, it's also a fact that their system wasn't designed for 
the 80386. Ours is. And it's, 1 called PC-MOS/386™ 



4 Thousands of DOS Programs PC-MOS/386™ 
§ gives you the best of the past, and the best for your 
future. Which means that while PC-MOS/386™ totally replaces 
your old DOS, you won't have to replace the programs you've 
spent a lot of time learning. 

And it all happens so effortlessly. You'll continue 
to reap the benefits of your favorite DOS programs, 
while entering a new arena of power. 

Thinkofit! Programs like dBASE III, 
WordPerfect, Lotus 1-2-3 and Sym- 
phony, WordStar, MultiMate... literally 
thousands of DOS programs-all com- 
patible and multi-user available. 




compatible with the millions of 
PC-compatibles. Power without 
nothing less from the new standard bearer. 



2 PC and PS/2 
• Compatible 

In designing PC-MOS, we 
knew our first priority was 
to exploit the minicomputer 
capabilities of 80386-based 
PCs&PS/2s.Butwewent 
further, and developed a 
system which would be fully 
existing PCs, PC ATs, and 
sacrifice. You'd expect 




Familiar 
Commands 
Like DIR and COPY 

Just as you don't have to 



»i.t 

learn a whole new array of U 



c§> 



COPY 




software to take advantage of PC-MOS/386™ neither do you 
have to learn an entirely new set of commands. 

Instead, the system builds on the knowledge you already 
have. "COPY" still copies files, and "DIR" still gives you a 
directory listing. As you might expect, we didn't stop there. 
There's a wealth of features that have strengthened the com- 
mands you know, making them more powerful and easier to use. 



3 One, Five, Up to Twenty-five Users 
• From the beginning, PC-MOS/386™ was 
designed as a versatile operating system which 
could support twenty-five users as easily 
as it supports one. The system comes in 
single, five, and 25-user modules, so 
you're able to start with what you need 
and expand when you're ready. 

In a multi-user setting, PC-MOS/386™ uses the 




You can choose from a variety of work- 
stations. Mix and match dumb terminals 
costing under $500 each with PCs and 
■k PS/2s running our terminal emulation 
-^ software. 

All of the host's resources can be 
shared. Programs, data, hard disks, 
tape backup units & printers (including 
high speed laser printers) are suddenly available to all 



computing power of the host PC to drive workstations }BB l SrSL users - An 80386-PC has minicomputer potential, 
linked to standard RS-232 ports. ^gl^^^^M] With PC-MOS/386™ you can "mini" your micro. 



94 Inside the IBM PCs • BYTE 1987 Extra Edition 



ofUsersWaiChoosePC-MOS/386. 



6 



Concurrently Supports Virtual 8086 and 
• 80386 32-Bit Mode 





80386-based PCs & PS/2s are dual-personality computers. To 
run DOS programs, they act as PCs with a 640K memory limit. 
But to take advantage of their minicomputer capacity, they operate 
in true 80386 mode which lets them address up to four gigabytes 
of memory. PC-MOS enables the 80386-host and its workstations 
to independently switch between these modes-making DOS 
compatibility and 80386 power simultaneously possible. 



9 Remote 
• Access 

It's been said that informationls" 
power. . .which makes PC-MOS/386™ a deadly weapon to your 
competition. Imagine on-the-road salespeople being able to file 
call reports and access your latest inventory data. Picture execu- 
tives being able to access your corporate database from across 
the country, or around the world-giving them the information 
they need, when they need it. 

Visualize branch offices tapping time-critical data with 
nothing more than a modem and a workstation. Working at a 
home office in the evening or over the weekend suddenly gets 
awfully productive. And that makes good business sense. The 
kind of sense you can't afford to be without. 



*] Multi-Tasking 

I • While it's true you could look else- 
where for multi-tasking, why would you 
want to? The other multi-tasking operating" 
system is not now, nor is it planned to be, 
multi-user It won't even run multiple DOS appli- 
cations in multi-tasking mode. 

Now consider PC-MOS/386™ At the touch of a key, 
you can switch between up to 25 different tasks. And if you have 
workstations connected to a host, they get multi-tasking, too. 
Finally... a system that won't hold you back. 




1A The Price.. .As you 




8, 



File/Record Locking and 

U Security When you decide to 
implement either a network or a multi- 
user system, there's a two-fold problem 
which must be solved: protecting 
a .wmm m Sm^ i your work from accidental misuse 
N? and securing it from intentional theft. 

PC-MOS/386™ solves both aspects of this problem. Password 
protected security allows you to assign file, directory, and task 
access to each men Plus, files and records are locked using either 
PC-MOS' proprietary system or NETBIOS emulation. 



evaluate operating systems, 
ask yourself if it's reasons you're consider- 
ing... or rhyme. Ask if you're getting a 
system for tomorrow, or one that was made 
for yesterday. See if you're being forced to buy 
new hardware because of their software. 
And consider this. 

Only one operating system in the world can 
* give you the raw power, features, and functionality that you 
demand. Its name is PC-MOS/386^_ 
And it's immediately available in ^J^ 
one, five and 25-user versions starting 
at $195. J ' J y 

PC-MOS/386™ is a trademark of The Software Link, Inc. PS/2, PC AT, NETBIOS, dBASE III, 
MultiMate, WordPerfect, Lotus 1-2-3 & Symphony, & WordStar arc trademarks of IBM Corp., AshtonTate, 
WoidPerfect Corp., Lotus Development Corp., & MicroPro, respectively. Prices and technical specifications 
subject to change. Copyright © 1987. All Rights Reserved. 

For the dealer nearest you, In Georgia: International/OEM Sales: Resellers/V ARs: 
CALL: 800/451-UNK 404/441-2580 404/263-1006 404/448-5465 

3577 Parkway Lane, Atlanta, GA 30092 Telex 4996147 SWLINK FAX 404/263-6474 

" The Software Link/Canada CALL: 800/387-0453 





DEALER INQUIRIES INVITED 



■iMODUl 

CD 



MODULAR OPERATING SYSTEM ^« 

THE SOFTWARE LINK 



Circle 210 on Reader Service Card (Dealers: 211) 



BYTE 1987 Extra Edition • Inside the IBM PCs 95 



- Breakthrough iii 



Access Your Data 3.6 Times Faster* 



V \ \ # 



\p. ;.«' 



Co-star 



f?sS 






CO-STAR is a unique data storage subsystem containing either an 80-megabyte or a 150-megabyte disk drive and a hard drive controller card with 

a powerful difference: an onboard d isk-management co-processor. 



Fast Disk 

Now you can get incredibly fast disk access 
performance from your IBM PC/XT, AT or 
compatible with Nestar s breakthrough 
co- processor technology. 

Co-Processin g 

Co-processing means that while your system 
CPl runs applications without interruption 
or memory overhead, CO-STAR runs invisibly 
in the background with an array of sophis- 
ticated disk-management functions, such as 



1 . File and disk space optimized for most 
efficient retrieval 

2. Intelligent buffering, dramatically 
reducing disk access delays 
PLUS 

■ DOS 3 2 megabyte file size — limitation is 
eliminated 

Performs print spooling 
Fast access SCSI interlace connecting 
up to 8 devices 



Disk-Intensive A p plications 
CO-STAR can increase productivity' up to 
366 percent! — in applications like data 
base management, accounting, CAD/CAM 
and desktop publishing. 

Complete System 

CO -STAR subsystems include everything: 
i Top-rated hard disk drives 

■ CO-STAR disk controller, 256K of memory 
(expandable to 1 Mb) with a co-processor 

l Cabling 

■ Easy installation software tor DOS 3.X 

■ User manual 



Free 800 -phone technical support 

Don t miss out on our limited-time 
introductory prices. 

80 Mb CO STAR System $ 1 ,495 .00 
Half Height Internal Drive ^*" 

ISO Mb CO-STAR System $ 2,495 .00 
Full Height Internal Drive ^^ 



To order, call us direct at 



If you're not completely sa 
CO-STAR system, return it to P 
30 days for a full refund. A 1 2 -month r 
to factory, limited warranty. 

To learn more about CO-STAR and how new- 
technologies have been used to deliver you 
great disk performance, call or write today 

for your free copy of , 

George Morrows \ 

"11 Design Innovations 
That Improve 
Disk Performance'/ 



Nestar Systems 



A Member of the Business Network Systems 
Group of DSC Communications Corporation. 

1345 Shorebird Way 

Mountain View, California 94043-1339 



1-800-832-7274 

8:00 AM 5 :00 PM Pacific Time 



Circle 149 on Reader Service Card 



* Based upon reading 1000 sequential sectors, one at a time. Full comparative tests using standard industry benchmarks are available upon request. 



BUSINESS REPLY MAIL 

FIRST CLASS MAIL PERMIT NO. 201 PISCATAWAY NJ 



POSTAGE WILL BE PAID BY ADDRESSEE 



BYTE 



Subscription Dept. 

P.O. Box 6807 

Piscataway, NJ 08855-9940 



NO POSTAGE 

NECESSARY 

IF MAILED 

IN THE 

UNITED STATES 




.ImI,ImIm.IImIImI.ImI.Im.I.I..II.hIImI 



DU.S. 



^5iM Now that you have 
this card in hand, 
make a career move! 

Order your own subscription to BYTE and save $20 off 
the newsstand price*. You'll get 12 monthly issues for $22 instead 
r of $42. If microcomputing is your business, BYTE has to be your 
technology source. There is no choice — as you can see by this issue, 
BYTE has no peer when it comes to technology coverage of the micro- 
computer industry. 47ICNU-3 

□ Canada/ Mexico □ Europe- Air Delivery □ Worldwide-Surf ace Delivery 




$22.00 (1 yr.) $25.00 US. (1 yr.) 



$69.00 US. (1 yr. 

Name. 



$37.00 US. (1 yr.) 



□ Bill me (North America only) 

□ Payment enclosed (U.S. Funds drawn 
on a U.S. bank only) 

□ Charge to my DVISA □ MasterCard 

Card § Expires 

Signature 

For direct ordering call toll free weekdays 9:00am-5:00pm 
EST: 1 800 423-8272 (in New Jersey: 1 800 367-0218). 



Address 

City /State. 

Country _ 



Code . 



Please allow 6-8 weeks for processing your subscription 



BYTE m 



INSIDE THE IBM PCs 



A simple Windows program for investigating and debugging 

other Windows programs 



Spying on Windows 



Michael Geary 



Getting started with Micro- 
soft Windows programming 
can be a daunting experience. 
Many programmers have re- 
ported steep learning curves. 
Things are getting better, 
however; Microsoft has great- 
ly improved the documenta- 
tion in its Software Develop- 
ment Kit for Windows 2.0, 
and books on Windows pro- 
gramming are starting to ap- 
pear. In addition, developers 
are taking a renewed interest, 
since OS/2 will incorporate a 
new version of Windows as its 
presentation manager. 

Once you learn the ropes, 
Windows is a virtual treasure 
chest of user-interface, graph- 
ics, and system management 
functions, all designed to let 
you write MS-DOS applica- 
tions with a Macintosh-like 
user interface. In fact, Macin- 
tosh experience is a great help 
in Windows programming. 
The user interfaces are simi- 
lar, as well as the entire phi- 
losophy of application style. 
As a result, the way you orga- 
nize a Windows application is 
a lot like a Mac application 
rather than a traditional DOS 
application. 

To quote Inside Macintosh 
(whose authors were quoting 
Firesign Theater), "Everything you 
know is wrong." Windows applications 
are so different that experience in writing 
DOS applications can work against you. 
To write a good Windows application, 
you have to do things the way Windows 
likes them done. A good way to learn that 
is by seeing how existing Windows appli- 
cations are put together. 

As you might guess, one of the most 
important features of Windows program- 
ming is a window. Nearly every Win- 




dows application creates at least one win- 
dow, its top-level application window, 
and most applications create and destroy 
a number of different windows as they ex- 
ecute. Some windows appear as such to 
the user; others are a programming con- 
venience. For example, every dialog box 
is a window, and each item (e.g., edit 
fields and push buttons) inside a dialog 
box is itself a window. Windows pre- 
defines these particular kinds of windows 
for you; others you build in your own 



code. Just choosing how to set 
up this variety of windows can 
be a challenge. 

Since I would rather borrow 
a good idea from someone 
than invent everything from 
scratch, I wrote a program 
called Spy that sneaks a look 
at existing applications. Win- 
dows maintains a linked list of 
all the windows that currently 
exist; Spy scans through that 
list and gathers up all the in- 
formation it can find about 
every window, regardless of 
the application that created it. 
Then it displays all this in its 
own window, in either a sum- 
mary or a detailed format. 

Spy manages to uncover 
some rather personal informa- 
tion about another applica- 
tion's windows, including the 
address of its window func- 
tion, which is the actual pro- 
gram code that manages a 
window. Yet Spy is a well- 
behaved Windows application. 
It doesn't use any undocu- 
mented Windows features. 

I've used Spy both to inves- 
tigate techniques used in other 
Windows applications and to 
help track down bugs in my 
own applications. Figures 1 
and 2 show Spy on a typical 
mission, displaying the list of 
windows being used by several Windows 
applications. 

What Spy Displays 

Figure 1 shows Spy's summary view- 
one line per window with the basic inf or- 

continued 

Michael Geary (P.O. Box 1479, Los 
Gatos, CA 95031) is a software engineer 
for Gupta Technologies Inc. and is mod- 
erator of the BIX CD-ROM conference. 



Illustration: Steve Johnson © 1987 



BYTE 1987 Extra Edition • Inside the IBM PCs 97 



SPYING ON WINDOWS 



mation about that window. This includes: 
•The type of window: top-level, icon, 
pop-up, or child. This category deter- 
mines how a window uses screen space. 
Top-level and pop-up windows share the 
entire screen, as do icons, and they can 
all overlap each other. Child windows 
exist inside a parent window and are 
clipped off at the edges of the parent. 



• The window handle, a 16-bit value 
displayed in hexadecimal. When you 
create a window, Windows assigns it a 
window handle, and every function in 
Windows that manipulates a window 
takes the window handle as a parameter. 
A window handle is analogous to a file 
handle in DOS, except the values are not 
small sequential numbers. 




CfiRDFILE.EXE 
CLIPBRD.EXE 
CL0CK.EXE 
CONTRDL.EXE 



Free S;: 



iejL 



cls=notepad.exe A .cls 
crd=cardfile.exe *.crd 
cur=iconedit.exe A .cur 
doc 



Spy on Windows 



Top Level window 1348 {Spy!} (52,282;634,**75) "Spy on Windows!" 

Top Level window 1768 {Notepad} (145,181:520,289) "Notepad - WIK.INlf 

Child window 2BE4 {Edit) (168,141 ;498, 268) " ; this is a continent, 
Top Leuel window 8F38 {Session} (8,9;MiB,181) "MS-DOS Executive" 

Child window 1188 {Disk} (23,li9;351,7B) "" K 

Child window 11C8 {Path} (23,78;433,84) MM ^ 

Child window 1218 {Dir} (14,88 ;434, 175) "" 
Top Level window 144C {Clock} (464,3;633 f 17B) "Clock" 
Popup window 0DDC {wintitle} (40,464;84,48B) "" 
Icon window 1988 {Paint} (4,4BB;48,436) "Paint - (untitled)" 
Icon window 12fi4 {FreeMen} (4,448;4B,476) "FreeMen" 
Popup window 0DAB {winswitch} (B,8;18,18) "" 



Figure 1: Spy's summary view, showing each window's handle, class name, 
location, size, and title. 




iM'I'rlff 



fiL=| b[=] 

C:FIXED DISK \UINDOWS 
CflLEKDflH.EXE C BUMBLE.EXE 
CfiRDFILE.EXE CI 
CLIPDRD.EXE D 
CLOCK.EXE D 
CONTROL.EXE D 



£ile Edit Search 



cls=notepad.exe A .cls 
crd=ear dfile.exe ^.crd 
cut*=iconedit.exe "'.cur 
doc=write.exe ^.doc 



184R 
Free • 



Spy 




Spy on Window 



Top Level window handle: 8F38 
Class name: Session 
Window title: MS-DOS Executive N 
Parent window handle: BBBB l^ 

Class function, Window function: 41FB:BB28, 41FB:BB28 
Class module handle, Window instance handle: 41D5, 8266 
Class extra alloc, Window extra alloc: 8, B 
Class style, Window style: BBB3, 14CF0BB0 
Menu handle: B916 

Brush, Cursor, Icon handles: 0BB0, 8B42, 826fl 
Window rectangle: Left= 8, Top= 9, Right= 44B, Bottom= 181 
Client rectangle: Left= 8, Top= 8, Right= 418, BottonF 127 

Child window handle: 1180 
Class name: Disk 



Figure 2: Spy 's detail view. This shows all the information Spy has gathered 
about each window. 



• The window class name, shown in 
figure 1 inside curly braces. Every win- 
dow belongs to one window class or an- 
other, and window classes are identified 
by name. Many windows can belong to 
the same class, giving you an easy way to 
create multiple windows that operate sim- 
ilarly. For example, every editable text 
field in a dialog box is a child window be- 
longing to the Edit window class. 

• The window rectangle, four decimal 
values that specify the left, top, right, and 
bottom corners of the window. These 
values represent pixels and are in abso- 
lute screen coordinates; for example, 
(0,0) is the top left corner of the screen. 

• The window title. Generally, this is 
the title that appears at the top of the win- 
dow. For an edit-control window, it's the 
text inside the window. 

Spy's detail view gives much more in- 
formation about each window, which I'll 
discuss later. First, I'll take a look at 
some of the basic philosophy underlying 
the structure of a Windows application. 

Breaking Out of the Mode 

One of the goals of Windows is to provide 
a modeless, visually oriented user inter- 
face for applications programs. A "mode" 
is a condition a program enters that limits 
the user's options or changes the meaning 
of user input. A classic example of a 
modal system is a nested-menu user inter- 
face, where you type a number or letter at 
the top-level menu to choose another 
menu, then type another number to get to 
the next menu, and so on. The meaning of 
your keystrokes changes at each level of 
the menu tree, and instead of having all 
your choices available, you have to navi- 
gate to the right place in the menu tree be- 
fore you can do anything. 

Modal interfaces like this can be te- 
dious, annoying, and confusing. They 
make the user feel that the program is in 
control. Well-written applications, for 
Windows or any other environment, 
avoid modes as much as possible. 

Unfortunately, the structure of a con- 
ventional DOS application easily leads to 
the use of modes. In a conventional pro- 
gram, flow of control is the governing 
factor. The program is always executing 
in one portion of the code or another, and 
when it needs user input, the program 
will run some particular subroutine that 
requests that input. Once the program is 
in this particular input mode, the user's 
choices are likely to be limited to what- 
ever has been coded in this part of the 
program. 

Don't Call Us; We'll Call You 

To avoid modes, a Windows application 
is built from a collection of windows and 

continued 



98 Inside the IBM PCs ■ B Y T E 1987 Extra Edition 



^.J^ 




' 



METTHE 

COMPETITION. 

AND IT IS US. 







r~ 




Some nine -wire dot matrix printers hide from the competi- 
tion. Not the new Citizen™MSP-50. 

With the ability to handle all types of paper ; top or bottom f eed ; 
and a convertible push or pull tractor, it figured it was the best. How- 
ever, another printer had designs on the title. 

So the MSP-50 relied on its high speed ; up to 300 cps ; to crush 
the competition. But it wasn't enough. Feature by feature these two 
contenders battled. Quiet mode. 240 dpi graphics. Color capability 
Choice of fonts. Front panel feature controls. Even compatibility with 
most major sof tware.They were equal. Finally the MSP-50 put its 
80-column print width on the line. Unfortunately the other machine 
offered 136. 

What was the other machine? The new Citizen MSP- 55. Which 
just goes to prove that if you want to be considered one of the best ; 
you have to be a Citizen in good standing. 

For more information call l-800-556-1234 ; Ext. 34. In California 
call l-800-441-2345 ; Ext.34. ■=» f n IT , I r 7I71\r 

©1987 Citizen America Corporation. — ^ V-/ J. JL J. MJk JLj 1 H 

Citizen and the Citizen logo are trademarks of n ."" % 1.111 1 

QtizenWatch Co., Ltd. ranters that run like clockwork. 







, 



A 



Circle 253 on Reader Service Card 



7 



BYTE 1987 Extra Edition • Inside the IBM PCs 99 



SPYING ON WINDOWS 



their associated window functions. The 
job of a window function is to process 
messages that are sent to its window. All 
keyboard and mouse input comes in the 
form of messages, and Windows sends 
messages to notify the window function 
of other system events that affect a win- 
dow's operation. Windows has over 100 
different messages that it sends for differ- 
ent events, and applications can define 
additional messages. 

For example, when you open up sev- 
eral application windows, each window 
function receives messages to notify it of 



the current window position and size 
(WMJWE and WLSIZE). Then, as you 
move the mouse across these windows, 
Windows sends WLM0USEM0VE messages 
to the window functions, passing to them 
the current mouse position. 

Windows also has messages for the 
mouse buttons (e.g., WLLBUTT0ND0WN 
and WLXBUTTONUP) and the keyboard 
(WLKEYDOWN, WMJCEYUP, and WLCHAR). 
In addition, as you move the windows 
around and bring different ones into 
view, the window functions receive 
WMJ>AINT messages to notify them to re- 



?1L 



£*&jfi! 



KEYBOARD 

YOUR SINGLE SOURCE FOR 
KEYBOARD ENHANCEMENTS 

m Replacement Keys and Keytop Shells for IBM 

1 ■ Keytop Kits Supporting Most Software 
L ■ Touchdown™ Keytop Expanders 
* ■ Custom Key Imprinting 

■ Custom Printed Keytops 
■ Do-it-yourself Keytop Kits 
^ ■ FlexShield™ Keyboard 
Protectors 
i Keyboard Templates 





l-jooteon 

I CORPORATION 



™ ■ CORPORATION 3 * 

The Leader in Keytop Innovatio.. 

POST OFFICE BOX 201 • PEPT.BYTE yfifl 



Circle 101 on Reader Service Card 
100 InsidethelBM PCs • B Y T E 1987 Extra Edition (Dealers: 102) 



paint part or all of the screen display. 
Menu selections send a WM_COMMAND mes- 
sage along with the menu identification 
code you assigned to the menu item. 

There are many more messages. Win- 
dows sends a message for just about every 
event that can affect your application, and 
your entire application is built around the 
window functions that process these mes- 
sages. Once you understand how window 
functions and messages work, you're 
well on your way toward success with 
Windows. 

In a way, this is the opposite of tradi- 
tional DOS programming. Instead of the 
program calling for user input, writing 
output to the screen, and generally being 
in charge, the window function is at the 
mercy of the messages thrown at it. It 
doesn't get to decide what message it's 
going to receive next; it has to process 
each one and return until the next one 
comes to it. Since user input generates 
most messages, this puts the Windows 
user in charge of the software. 

Window Rectangles 

Besides the window function and its mes- 
sages, the most important attributes of a 
window are its window rectangle and 
client rectangle. The window rectangle, 
shown in Spy's summary view, describes 
exactly where the window is located (at 
the time that you invoke Spy) in absolute 
screen coordinates. The window rect- 
angle can be partially or completely off 
the screen, and the window display is 
clipped at the screen edges. The window 
rectangle includes the entire window. 

There are two main areas of a window 
rectangle: the client area and the non- 
client area. The nonclient area includes 
the border, title bar, menu, and scroll 
bars, and it is generally taken care of by 
Windows, although your application can 
take over control of this area if you wish. 
The remaining portion of the window is 
the client area, which is under the appli- 
cation's control. The client area is de- 
fined by the client rectangle. As a conve- 
nience to the application, the top left 
corner of the client rectangle is always 
(0,0), and any drawing done with these 
client coordinates is automatically con- 
verted to the proper screen coordinates. 

Types of Window Flavors 

As I mentioned earlier, top-level and pop- 
up windows share the full screen as their 
display space and are defined in terms of 
absolute screen coordinates. They are 
clipped at the edges of the screen, and 
they are also clipped relative to each 
other wherever they overlap. 

Child windows, on the other hand, are 
displayed inside the parent window's cli- 

continued 

Circle 57 on Reader Service Card — ► 

(Dealers: 58) 



Jerferaaoce. . . _ 
rallies tort 






PS/2 






■ 



■ 

BSD H 






***- 



I ■ 




ARTIST 10/16 VGA, the first 
1024 x 768 non-interlaced 
display controller for the IBM 
PS/2 

The ARTIST 10/16 VGA is the 
first graphic controller that 
enhances the standard VGA 
graphic capabilities of the IBM 
PS/2 models 60 and 80. It 
displays instantaneous CAD 
drawings at 65,000 vectors per 
second. 

Our ARTIST 10/16 VGA is the 
high performer for use with 
AutoCAD. ARTIST is the most 
popular board for CAD 
applications. It is supported by 
more than 90 software products. 

100% Compatible with VGA 
Software 

You get full screen VGA in 
single or dual monitor 
configurations. ARTIST 10/16 
VGA is a fully authorized IBM 
third party product with an 
official IBM board ID number. 

For the dealer nearest you 
call (800) 826-4281. 

In Minnesota, call (612)631-7800. 



mm KrPE? 




Control S/stems 



GT Now Available for ARTIST 
10/16 VGA 

For AutoCAD applications, our 
ARTIST boards feature high 
level editing options and instan- 
taneous zoom and redraw. The 
ARTIST boards team with dis- 
play list processing to give you: 

New multiple view windows 
speed the design process. Each 
window can be zoomed 
independently anywhere on the 
drawing. All views can be edited - 
simultaneously. 

>30 levels of zoom give you 
unlimited drawing space. Image 
resolution is enlarged to 16,000 x 
12,000 pixels. 

Reduces your AutoCAD zoom 
and redraw time by more than 
90%. 

> A Bird's-Eye-View window shows 
your fexact location within a 
drawing. 



ARTIST Distribute* 
Corporate Compute 



: CADsource, CAD Distributors, 
Systems, Edwards C. P. E., ICT 



x 64750, St. Paul. MN 55164 



ARTIST 10/16 VGA and ARTIST GT e— •■ 
Control Systems, Inc. IBM is a registi 

PS/2 is a trademark of International Lua<ue«» m«<- *= 

Corp. AutoCAD is a registered trademark of Autodesk, 
1987 Control Sys* — - '-* 



■ 



SPYING ON WINDOWS 



ent area. They can overlap each other, 
but they are always clipped at the edge of 
the parent's client area. If you move a 
window, all its child windows move along 
with it. Child windows are defined in 
their parents' client coordinates; that is, a 
child window with an origin of (0,0) 
would be at the top left corner of its par- 
ent's client area. 

Child windows are used extensively in 
Windows applications, as figure 1 shows. 
They are a handy way to provide different 
kinds of behavior in different areas of a 
single application window, since each 



child window has a window function. For 
example, the MS-DOS Executive (a file- 
handling utility that comes with Win- 
dows) uses three separate child windows 
for the disk icons, the current directory 
path, and the list of files. With this ap- 
proach, each child window's window 
function can handle its own operations 
without worrying about the others— you 
simply create the windows and let them 
run. 

The child windows inside the MS-DOS 
Executive window are not readily appar- 
ent to the user; in fact, it takes a program 




THE MURAL PLOTTER 

D SIZE PLUS. 
FLATBED TECHNOLOGY. 



$2495. 



We're riot going to razzle- ^Li \ s J ♦ Emulates Hewlett- 
dazzle you with a lot of hype Packard 7475 Plotter 
about the Mural Plotter, We'll Compatible with IBM/PC/ 
let the facts speak for themselves. XT/AT, XL, NEC, AT&T 

n , . - c „ -.,„ and more using RS-232'C 

Plot area 25 x 34 . , . ' r 

r> j\ji ^ i ^ serial interface 

Compatible with leading „ , ., 

a Desk top or wall mount 

software programs ~ „ \ .... 

Excellent repeatability • 5 ips 

Call for the name of your local CAD Dealer! 

Ul United Innovations • Crossroads Ind. Park • Holyoke MA 01040 • 413-534-4400 



like Spy to reveal them. They are a coding 
convenience for the MSDOS.EXE pro- 
gram. The exact same application could 
be written with a single window and ex- 
plicit code to handle things like mouse 
hit-testing (i.e., determining which area 
of the window the mouse was clicked on) . 
Using child windows lets Windows do 
some of the work for you. 

You can also create child windows that 
the end user can manipulate directly. 
Child windows can have caption bars, a 
size box (and in Windows 2.0, fat bor- 
ders), and the like, which let the user 
move and resize the window. In fact, 
child windows can look and operate a lot 
like top-level windows, except for being 
located inside the parent's client area. 
The Multiple Document Interface in 
Windows 2.0 uses this capability. 

Window Classes 

Often you want to have several different 
windows that operate in a similar way. 
Suppose you have a dialog box with sev- 
eral edit fields. Each one is a window (in 
fact, every item in a dialog box is a child 
window) . Although you need to be able to 
refer to each item individually, and each 
one has unique data (such as its text), the 
actual program code for each item is the 
same. This suggests that they should 
share a common window function, and 
perhaps some common data, along with a 
block of data unique to each window. 

That's exactly what a window class is. 
A window class defines a collection of 
windows that generally have a common 
window function and similar behavior. 
Windows comes with a number of pre- 
defined window classes, most of which 
are the various "controls," or child win- 
dows used inside dialog boxes. These are 
named according to their function: Edit, 
Static (for background text), Button (for 
all kinds of buttons), ScrollBar (which in- 
cludes size boxes), and List (a list box). 

Windows also has many predefined 
window classes that it uses behind-the- 
scenes, such as a class for the dialog box 
window itself, and one for pop-up 
menus. Applications programs create 
windows from these classes indirectly 
through functions like CreateDialog 
(which uses its own class). 

Spy's Detail View 

Spy gathers much more information than 
is shown in its summary view. Spy's 
Show Detail menu item toggles back and 
forth between the summary view and the 
detail view, which shows everything Spy 
has uncovered. Besides what's in the 
summary view, the detail view shows the 
following for each window: 

• The parent-window handle. This is 

continued 



102 Inside the IBM PCs • B Y T E 1987 Extra Edition 



Circle 231 on Reader Service Card 



Advancing the 

state of the art 

in raster graphics. 




With TV-quality resolution. 

Presenting the AT&T True- 
vision® Advanced Raster 
Graphics Adapter (TARGAtm) 
series. Five separate models 
address the spectrum of your 
continuous-tone imaging needs. 
Each single-slot TARG A 
digitizes and displays elec- 
tronic photographs with your 
AT&T- or IBM-compatible PC. 
TARG A captures images in 
real time from standard video 
sources. And because the im- 
ages are digitized files of in- 
formation, you can store and 
retrieve them. Display them 
with striking clarity. And ma- 
nipulate them with incredible 
subtlety. 

At varying pixel depths. 

TARGA provides up to 512 X 
482 pixel resolution at different 



pixel depths. 

TARGA 8 ($1,595): 256 
levels of grey 

TARGA M8 ($1,995): 256 
levels of grey or 256 colors ; 
from a palette of over 16 million 

TARGA 16 ($2,995): 32,768 
colors plus overlay 

TARGA 24 ($3,995): 
16,777,216 colors 

TARGA 32 ($4,995): 
16,777,216 colors plus overlay 
and 128 levels of mixing for 
sophisticated blending of live 
video and stored images. 

And with elegant 
engineering. 

TARGA is elegantly en- 
gineered for performance, 
efficiency, and reliability. Its 
powerful gen-lock capability 
lets you grab from VCRs and 
videodisc players as well as 



video cameras. Our propri- 
etary video controller limits 
memory contention to less 
than two percent. 

And TARGA incorporates a 
number of sophisticated 
hardware features, including 
2X, 4X, and 8Xzoom. Smooth, 
independent horizontal and 
vertical panning. Bit plane 
masking. And a wide range of 
programmable options pro- 
vides unlimited flexibility in 
working with continuous-tone 
images. 

And elegant applications. 

TARGA C language program- 
ming utilities and Halo drivers 
enable you to create your own 
applications. Or you can use 
one of the many software 
packages developed for 
TARGA by AT&T and others. 



Our Truevision Image Proc- 
essing (TIPS, $1,250), for 
example, provides powerful 
paint, text, and image manipu- 
lation functions. 

Advance the state 
of your art. 

If you have an idea for an ap- 
plication, talk to us. We'll pro- 
vide the technical support to 
help you advance the state of 
your art. With Truevision. We're 
changing the way personal 
computers see things. 

For additional information 
or to locate a Truevision 
dealer, please write or call: 
.AT&T, Electronic Photography 
and Imaging Center, 7351 
Shadeland Station, Suite 100, 
Indianapolis, IN 46256-3921. 
1-800-858-TRUE. 



AT&T 

The right choice. 



Truevision is a registered trade mark of AT&T. IBM is a registered trademark of International Business Machines Corporation. Compag is a registered trademark of Compaq 
Computer Company. HALO is a registered trademark of Media Cybernetics. Truevision Design and development by: RADAKAKACACCCEJHDHJHBHDJCMGMBPLRASTSJSBSJW .-■■' 

©1987 AT&T 

Circle 25 on Reader Service Card BYTE 1987 Extra Edition • Inside the IBM PCs 103 



SPYING ON WINDOWS 



always zero for top-level windows, but for 
pop-up and child windows, this line 
shows the handle of the window's parent. 
As discussed earlier, a child window is 
physically located inside its parent. A 
pop-up window is not limited in this way, 
but nevertheless it usually has a parent 
window to which it "belongs. " For exam- 
ple, the parent of a dialog box is usually 
the top-level window that created it. 

• The window-function address for 
both the window class and its particular 
window. Usually these are the same, 
since all the windows in a class share a 
common window function. However, an 
application can set up a unique window 
function for any particular window. 

• The instance handle and the module 
handle. You can run more than one copy 
(or instance) of a Windows application at 
a time, and each one creates its own win- 
dows. So, individual windows are tracked 
by an instance handle, which is a way to 
refer to each individual instance of the ap- 
plication. In contrast, features like the 
window class "belong" to all instances of 
the application, so Windows keeps track 
of them with the module handle, which 
refers to the application as a whole and 
not as any particular instance. 

• The class and window "extra" allo- 
cation. When you create a window class, 
you can specify extra storage to be allo- 
cated within the class data structure and 
each window data structure. Windows 
has functions to access this data, and the 
application can use the storage space to 
keep track of anything related to the win- 



dow or the window class. 

• The class style and window style. 
These are collections of bits that define 
things like whether the window has a bor- 
der or title bar. For simplicity, Spy dis- 
plays these as hexadecimal values, al- 
though the bits have symbolic names you 
would use when programming. 

• The menu handle. Top-level and 
pop-up windows can have menus, and the 
menu handle lets you refer to the menu in 
a program. Child windows can't have 
menus, so the menu handle for a child 
window is used (mainly in dialog boxes) 
as another way to refer to it. 

• The background brush handle, cur- 
sor handle, and icon handle. These tell 
Windows what color to use for the win- 
dow's background; what kind of cursor to 
display in the window; and what icon to 
display when the window is closed, or 
iconized. The application can either use 
these handles or set them to null (0) and 
determine the background color, cursor, 
and icon through explicit programming. 
For example, the Clock program that 
comes with Windows has a null icon han- 
dle so that when the program is iconized, 
it draws a working clock face with Win- 
dows calls instead of a default icon. 

• The client rectangle. Spy's summary 
view shows just the window rectangle; 
the detail view shows both the window 
and client rectangles. 

Using Spy 

Spy isn't just a demonstration Windows 
application, but a useful tool for finding 




Free 



Spy 



m 



Top leuel window 13^8 {Spy!} (ii7, 179; 629,1*53) "Spy on Windows! 

Top Leuel window 1554 OISWRITEJIEHU} (19 ,1 B;^81 ,168) "Write - 
Child window 2334 {SerollBar} (116,U*9;**61,162) " , ' 
Child window 2378 {SerollBar} (460,47 ;475,15B) ,,M 
Child window 23BC {SerollBar} (460,149 ;475, 162) "" 
Child window 2400 {MSWRITE_PfiGEINFO> (26,149;116,162) •" , 
Child window 2454 CMSWRITE_00C> (26,48;460,149) "" [\ 

Popup window 0DDC {wintitle} (0,396 ;132, 412) ,,n "• 

Icon window 0F38 {Session) C*,36O;40,396) "MS-DBS Executive" 
Child window 1180 {Disk} (12,362;340,383) "" 
Child window 11C8 {Path} (12,383;415,397) "" 
Child window 1210 {Dir} (3,481:416,503) "" 

Icon window 1988 {Paint} (4,400;40,436) "Paint - (untitled)" 

Icon window 12fl4 {FreeMen} (4,440;40,476) "FreeMem" 

Popup window 0DR0 {winswitch} (0,0;10,10) "" 



0LDT0H 



Figure 3: How does Windows Write display the page number in the lower left 
corner? Spy uncovers the answer. 



out how other applications work. For ex- 
ample, those who have done any Win- 
dows programming know that you can put 
scroll bars on a window by setting a cou- 
ple of style bits when you call the 
CreateWindow function. These standard 
scroll bars run along the entire width and 
height of the window, on the bottom and 
right edges. Spy's own scroll bars work 
like this. Windows Write has a similar 
pair of scroll bars, but the horizontal 
scroll is shorter and has a page number 
next to it. How does it do that? 

Time for a little industrial espionage, 
as shown in figure 3. Spy shows that 
Write' s window contains several child 
windows. One of them has the suspicious 
class name of MSWRITE_PAGEINFO; sure 
enough, that child window is located 
right where the page number appears. 
Write creates a child window for the page 
number. 

Why doesn't the horizontal scroll bar 
run into that child window, though? 
Spy's display shows that Write's top-level 
window contains three child windows of 
class SerollBar. One is the horizontal 
scroll bar, one is the vertical scroll bar, 
and the third is the size box in the lower 
right corner. The size box also belongs to 
the SerollBar class, even though it oper- 
ates differently. Write calculates the posi- 
tions for the windows itself rather than re- 
lying on a default, so it can put them 
where it wants, and they won't run into 
each other. 

Contrast this with Spy's one and only 
window, as shown in figure 1. (Yes, in 
the best double-agent tradition, Spy even 
spies on itself.) Spy's window has no 
child windows at all. I set the style bits to 
have the standard scroll bars when Spy 
draws its window; Write doesn't do this. 
Since Write's scroll bars are created ex- 
plicitly as child windows, the program 
doesn't have to use the standard scroll- 
bar location and size; it can place them 
anywhere it likes. 

I've also used Spy several times to help 
locate bugs in other programs. For exam- 
ple, during development of another pro- 
gram, I found that a particular window 
was sometimes painted wrong; the screen 
background and parts of other windows 
showed through. A quick Spy mission 
showed that I had inadvertently set the 
background brush to zero, so the window 
background was not erased properly (see 
figures 4 and 5). Since Spy showed me 
what to look for, finding the problem in 
my code was much easier. 

How Spy Works 

I discussed earlier how Windows sends 
messages to a window function. There 
are actually two different ways a message 

continued 



104 Inside the IBM PCs • B Y T E 1987 Extra Edition 



Circle 251 on Reader Service Card — * 



Unlock your desktop 
with Publisher's Paintbrush* 



Finally, a paint package designed for desktop publishing! When you create or 

scan a 300 dpi page, you'll get a 64-screen computer image. That's why 

Publisher's Paintbrush lets you zoom out and work on the big picture. 

So you get ultra*sharp resolution without ultra-tedious labor. 







One screen til a 64-screen image. • Shrink down to a manageable size. 



Next, cut- and- paste 



ATLS Provides 
Overnight Service 
■to 40 Major ^ 
Metropoltan 5 
Areas 1 

A few edits later. . . VOILA! 



New typography frontiers: continuously adjustable point sizes, text slope, 
line and character spacing, extended and condensed type, and letter slant. 



fidjwt frjnOer M Line Smglts 
tori)/* Scaclnj 



H £§iD W 



Wjust, Fr«t ZrjthK tA IUUc Slant 

£»e ftnat* 



!■■■■■■■ »■■■■■■■! 
■ ■ ■■■■»!■■■" 



Easy-to-use menus. 



Slant and angle text 1° - 359° 





4- to 250-point typ( 



If Mil 



Adjustable everything! 



Publisher's Paintbrush adapts to most scanners with absolute simplicity. 
Scan in existing art, logos and diagrams to save many hours of work! 



Contrast: [iM«lSHi7i8jWm )E3( 
Scan (fade: fSTlLJ E'^^M Q^5tl Pilar i 

ci'jEr: f|551 H 'b'j'j i.2.\ 

"•fig-v-ig^i.'.Ti:y. : : ! 1iJ _' E 



Full use of scanner features. 



si h*\*#h: irrr^ nai ifau 
■J [Ml Bi 

V - ■■■■■■■■■■■■■ 



Scan all or part of a page. 




COMDQi 




Combine art and type 



from several sources! 



Publisher's Paintbrush is a quantum leap in power beyond our 
top-selling PC Paintbrush*. In fact, it's the dawn of a new 
era for desktop publishing. With it, you can produce pictures 
of super-high resolution (many times sharper than your 
screen!) and marry them into text pages. With it, you can 
take full advantage of desktop publishing packages, laser 
printers and image scanners. Without it, you're stuck with 
ragged edges and tedious multi-screen editing. 

Publisher's Paintbrush supports major-brand image scanners 
and hundreds of printers and video display boards. And most 
desktop publishing packages have built-in links to Publisher's 
Paintbrush. 



Say goodbye to the old boundaries. Say "Show me" to your 
ZSOFT dealer. Or call our corporate offices for more 
information. 



Publisher's Paintbrush 
is a trademark and PC 
Paintbrush is a registered 
trademark oi i Soft 
Corporation. Dover 
Clip- Art Series is a 
registered trademark of 
Dover Publications, Inc. 



1950 Spectrum Circle, Suite A495, Marietta, Georgia S0067, (404) 980-1950 






SPYING ON WINDOWS 



can get to a window function. One is with 
a SendMessage call, which takes a win- 
dow handle as a parameter; and Windows 
then finds the window function for that 
window. Many of the messages that origi- 
nate from inside Windows are sent this 
way, such as the WM_SIZE message, 
which tells a window function when the 
user has resized a window. 



Other messages, such as keyboard and 
mouse input, aren't sent directly to a win- 
dow function but are placed in a message 
queue. The application's main program 
pulls messages off the queue and dis- 
patches them to the appropriate window 
functions. This is performed by Win- 
Main, which basically sits in a loop, call- 
ing GetMessage to pick up the next mes- 




Figure 4: Tracking down a bug with Spy. Why does my outline window look so 
strange? (Hint: Spy shows the background brush handle to be 0000.) 





187K- 
Free ; 



Spy on Windows 



Spy 



Top Leuel window handle: 1CU0 
Class name: Sql Win: Outline 
Window title: SQL Windows - (untitled) 
Parent window handle: 8000 

Class function, Window function: 22FB:08B6, 22FB:08B6 
Class nodule handle, Window instance handle: 22FB, 034Q 
Class extra alloc, Window extra alloc: 0, 6 
Class style, Window style: 000B, 16FF0000 
Menu handle: 095fl 

Brush, Cursor, Icon handles: 0006, 0000, OWE 
Window rectangle: Left= 10, Top= h-k, Right= 480, Bottom= 
Client rectangle: Left= 0, Top= 0, Right= Mi2, Bottom= 



206 
145 



Figure 5: This looks better. Sure enough, a different value, 0006, is in the brush 
handle. 



sage, and DispatchMessage to send the 
message to the appropriate window func- 
tion. WinMain also initializes and termi- 
nates the application. 

Initializing the Program 

Spy's Initialize function performs 
many tasks. The most important ones are 
to set up Spy's window class using the 
RegisterClass function and to create 
Spy's window with a Create Window call. 
In the process, Initialize checks 
whether this is the first instance of the 
Spy program being run or a subsequent 
instance, because the window class must 
be registered only once. Each instance 
has to create its own window, however. 

Initialize also calls GlobalAlloc 
to preallocate a data structure that stores 
the data Spy gathers on the various win- 
dows. At first, however, it allocates only 
1 byte in the structure. Later, when Spy 
scans through the windows, it reallocates 
this structure to the actual size needed. 
Windows' memory management is nice 
this way: Your program can resize any 
block of memory at any time you want, 
and the memory never gets fragmented. 

Windows pulls off this trick by giving 
you a handle to the memory block instead 
of an absolute pointer. Windows can 
move the data around as needed to ac- 
complish resizing because when you 
want to get to the data, you call Global- 
Lock to lock down the data and get the 
physical address, and GlobalUnlock as 
soon as you're done. As long as the data 
isn't locked, Windows can move it 
around. 

Calling GlobalLock and Global- 
Unlock all the time involves extra work, 
but these functions are fast and provide a 
real benefit in flexibility of memory use. 
For situations where the overhead of call- 
ing those functions is unacceptable, you 
can allocate memory with a "fixed" op- 
tion; then Windows won't move it 
around, and you can hang on to the abso- 
lute address. 

Spy's Window Functions 

The window functions are the heart of 
any Windows application, and Spy is no 
exception. A window function (e.g., 
Spy's SpyWndProc function) is generally 
just a switch/case statement that takes 
care of the messages that the application 
wants to handle itself. Any message not 
handled by SpyWndProc is passed 
through to a default window function, 
called Def WindowProc. 

This trick is the source of much of 
Windows' flexibility. Windows does 
very little behind the scenes without first 
giving your application a crack at it. For 
example, when the nonclient area of your 

continued 



106 Inside the IBM PCs -BYTE 1987 Extra Edition 







UTILITIES 

DATA RECOVERY 
DISK MANAGEMENT 

For the complete IBM'F'C family and compatibles. 










"Don't compute without it." 
-New York Times. ■ "Highly 



m ^g^\ recommended for business users," 
I' I I J —Time-Life Access Newsletter. 
^^^^^^ ■ " Indispensable!' —?Q Maga- 

^H ^W zine. ■ "Essential in day-to-day 
^^^^ personal computing."— Personal 

Computing Magazine. ■ Three years 

voted "World Class" Best Utilities. , 

-PC World. ■ "A pleasure 

to use."-PC Week. 

■ " You '11 bless this disk." 

— Peter McWilliams/ 

The Personal Computer Book. 

A life saver for your data. 




fir 




!5?"»e 



''■ c ^i>k 




Package m, Worj ^ best ? d ,l?P e *sabl e » m 
e *W£J > Loa <1ed wiling disk » Nort °n 

- — — ^__^^ ' [rie most 





its not so 




of brand new technical features 
and functions. 

Like Speed Disk, for tighten- 
ing up disk space and optimiz- 
ing access. 

And Format Recover^ for 
unformatting your accidentally 
reformatted hard disk 

As well as a FAT Editor, a Par- 
tition Table Editor, a Directory 
Editor and access to absolute 
disk sectors. 

All of which explains why 
InfoWorld called the Advanced 
Edition "a great program that 
has gotten even better" 

We just call it good company. 

CReter hhrto*- 

COMPUTING 

Designed for the IBM* PC, PC-AT and DOS compatibles. Available at most software dealers, or direct from Peter Norton Computing, Inc., 2210 Wilshire Blvd. # 186, Santa Monica, CA 90403. 
To order, call 213-453-2361 (VISA and MasterCard welcome). MCI Mail: PNCI.Fax 213-453-6398.© 1987 Peter Norton Computing. 



At last 

After five long years alone at 
the top of the best-seller lists, 
the Norton Utilities™ is being 
challenged by another software 
package. 

Which is no small feat, 
considering that Version 4.0 is 
selling even faster than its prede- 
cessors did. 

Unfair competition. 
Of course, in order to compete 
with the Utilities, this upstart 
new package first had to copy it 

It had to include the famous 
UnErase]" which has rescued 
the derrieres of thousands of 
grateful PC users. 

As well as the unique File 
Info, which lets you attach de- 
scriptions of up to 65 characters 



to your files. 

Not to mention the Norton 
Integrator, which lets you con- 
trol everything from a single 
program and gives you on-line 
help for each function. 

In fact,The Advanced Edition 
of the Norton Utilities includes 
every single one of the features, 
functions and enhancements 
that have made Version 4.0 
so popular. 

Right down to the user inter- 
face which, according to the 
InfoWorld Review Board makes 
the Advanced Edition "as easy 
to use as possible." 

And thafs not all. 
The more the merrier. 
Because the Advanced Edition 
goes on to include a wish list 



Circle 260 on Reader Service Card (Dealers: 261) 



BYTE 1987 Extra Edition • Inside the IBM PCs 107 



FINALLY! 



EASYFLOW 

An on-screen flowchart processor that knows about flowcharts - not just 
f\ another "screen draw" program that makes you do most of the work. 
Easy Flow is a powerful full-screen graphics program dedicated to flowcharts 
and organization charts. With it you can quickly compose charts. More 
important, you can easily modify charts so they are always up to date. 

► Automatic: Fully automatic text centering within shapes, both horizontally and 
vertically. Fully automatic line routing & re-routing. 

► Fast: Written in assembly language for speed. 

► Large: Charts up to 417 columns wide by 225 lines high. Chart too large for your 
printer? E^syFLOiv automatically breaks the chart up & prints it in page size pieces. 

► Standard: All standard flowcharting shapes included. Custom shapes can be ordered. 

► User friendly: Don't take our word for it. PC Magazine* says "EasyFlow \ms 
up to its name. It's hard to imagine any easier and more flexible way to produce 
basic and even complex flowcharts". 

► Mouse: Optional but fully supported. 

► It prints: On most popular matrix printers including IBM, Epson, Toshiba, HP 
LaserJet, LaserJet-Plus and many others. 

► It plots: On HP7440, 7475, 7550, 7570, 7585B and compatible plotters. 

► It works: We are contractually prevented from mentioning the name of the "big 
eight" accounting firm that purchased a world-wide site license, but we can tell 
you that they spent months evaluating all available flowcharting packages before 
choosing EasyFlow. 

► Rush delivery: Order by noon today (eastern time) and we'll have it to you by 
courier tomorrow**. Rush delivery charge is $15.00 (instead of $2.00) and is 
available only in USA & Canada. 

► Documented: 100 page manual plus over 150 screens of context sensitive help. 

EasyFlow works on IBM PC's, IBM PS/2 and compatibles. Requires 384 K memory, 
DOS 2.0 or higher and an IBM CGA/EGA/VGA or Hercules monochrome compatible 
adapter card. 

Order direct for only $149.95 + $2.00 S&H (USA/Canada), $10.00 (foreign). Payment 
by M.O., cheque, VISA, Mastercard or Company PO. 

• March 10, 1987 issue, page 278. 

*• Rush orders are shipped by Purolator Courier and normally arrive the next business day to most locations. 
Remote destinations take longer. 



Mailroom 

sends to 

central files 

by 9am 




Central files: 

complete 

Lost Order" 

form 



In addition to logging 
the complaint» the search 
unit copies the complaint 
for managers as uell- 



The chart fragment above was produced on an HP LaserJet-Plus and is actual size and 
unretouched. Publication quality charts like this can be produced using only minutes of preparation 
time and seconds of print time. 



HavenTree Software Limited Order Desk: 
PO Box 1093-A Information: 

Thousand Island Park, NY 13692 Telefax(G3): 



1-800-267-0668 

(613) 544-6035 ext 80 

(613)544-9632 



108 Inside the IBM PCs • BYTE 1987 Extra Edition 



Circle 96 on Reader Service Card 



SPYING ON WINDOWS 



window (e.g., the title bar and borders) 
needs to be repainted, Windows sends the 
window function a WM_NCPAINT message. 
If you want to create some special kind of 
border instead of the default, you can in- 
tercept this message and draw whatever is 
needed. Most window functions ignore 
the WM_NCPAINT message and pass it 
through to Def WindowProc, which paints 
the nonclient area according to the stan- 
dard window style. 

Now let's take a look at the messages 
that SpyWndProc handles. For example, 
WM_COMMAND tells the window function 
that the user has selected a menu com- 
mand (among other things). Spy has only 
two menu commands: New Spy Mission, 
which tells Spy to make another pass 
through all the windows and update its 
display accordingly, and Show Detail, 
which toggles between the summary and 
detail views. 

Windows sends a WM_DESTROY mes- 
sage when a window is being closed. 
Since this is Spy's only window, receipt 
of this message calls the PostQuit- 
Message function, which puts a WM_QUIT 
message in the message queue. WinMain 
calls GetMessage, which pulls the 
WM_QUIT from the queue and returns 
FALSE, terminating the main application 
loop. 

Spy uses WM_HSCROLL or WLVSCROLL 
when the user manipulates the horizontal 
or vertical scroll bar with the mouse. 
Windows passes these messages along 
with codes indicating what action has 
been taken, such as clicking on the scroll 
bar or the page-up/page-down area. 

Since Spy uses the keyboard only for 
scrolling, it checks for the WM_KEYDOWN 
message to see when a cursor key is 
pressed, and simulates the equivalent 
scroll-bar message. By the way, if you 
have ever been frustrated with the way 
DOS and the BIOS handle the keyboard, 
you'll love Windows, because it gives you 
complete control over keyboard informa- 
tion. Every key press sends a WM_KEY- 
DOWN message, and every key release 
sends a WM_KEYUP message. When a key 
auto-repeats, it sends additional WM_KEY- 
DOWN messages, but there's an indicator 
to let you know it's an auto-repeat and not 
an actual key press. These messages are 
sent for every key on the keyboard— even 
Shift keys. To get this kind of control 
under DOS, you have to write your own 
keyboard-interrupt routine. When you 
just want ordinary ASCII characters in 
Windows, you can use a WM_CHAR mes- 
sage that is like conventional DOS/BIOS 
keyboard access. 

A special kind of message handled by 
SpyWndProc is WM_PAINT. Windows con- 
siders screen painting to be the lowest pri- 

continued 

Circle 28 on Reader Service Card — * 



' 





QUALIMETRIC" 3.5" MICRO FLEXYD&KS. 



00% ERROR-FREE AND WARRANTED. 



Circle 217 on Reader Service Card 



1 



NOW. . . 

• Connect multiple PCs through multiport hubs 

- Up to 100 nodes using multiple hubs 

- Employ one PC as a hub 

- Join a single PC to a StarLAN network 

- Install in about the time it takes to put in an 
internal modem 

• Total tech support 

-Complies with IEEE 802.3 1 BASE5 

■ Low cost!!! 

WHICH STARLAN LEVEL 
DO YOU NEED? 

■ SGL1500 — PC Adapter Board, low cost way to 
integrate PCs into StarLAN network 



• SGL2500 — PC Adapter Board with Integrated 
Hub, to serve as a hub in a network of up to 1 1 
stations 

- SGL3500 — Ten-Port StarLAN hub, to network 
PCs or other hubs, over distances of BOO feet 

• ViaNet — Operating System to manage your 
network, or the industry standard Novell 
Netware '" 

CALL: 1-800-STARGATE. 



m& 



TECHNOtOGf£S tNC 



If 33800 Curtis Blvd.. 
Eastlake. OH 44094 




GPIB (IEEE-488) 
CONTROLLER 



WAVEFORM 

SYNTHESIZER 

Arbitrary Waveform 

Generation 



rai l/\ TCrU 478 E. Exchange St., Akron, Ohio 44304 

ZJli/' swn (2i6) 434.3^4 TLX . 5 i 1012726 

INCORPORATED i -800-553-1 1 70 FAX: (21 6) 434-1 409 



SPYING ON WINDOWS 



ority of all its operations. Whenever part 
of your window needs to be repainted, 
Windows sends the window function a 
WM_PAINT message. However, this mes- 
sage goes to the end of the queue. If there 
are any other messages for any window in 
the system, they are processed first. 
Then, when there is nothing else to do, 
the WM_PAINT message comes through. 

In the meantime, Windows keeps track 
of which areas of your window need 
painting. It accumulates these into an up- 
date region, which describes the portion 
ofthe window to be painted. Suppose, for 
example, that your entire window needs 
to be painted, but a couple of pop-up win- 
dows overlap part ofthe window. The up- 
date region would include the entire client 
area, except the portions covered by those 
other windows. 

Finally, whenever the user changes a 
window's size, Windows sends SpyWnd- 
Proc a message called WM_SIZE, along 
with the new size. Spy uses this informa- 
tion to recalculate the maximum ranges of 
its horizontal and vertical scroll bars. 

I Spy; You Can Too 

There isn't room here to go into the rest 
of the details of how Spy works, but I've 
covered the most important points. Spy 
illustrates how closely one Windows ap- 
plication can take a look at another appli- 
cation and its windows. It's no accident 
that Windows works this way; this capa- 
bility helps applications work together in- 
stead of being islands unto themselves. 

Windows applications can easily swap 
data using the window handles and mes- 
sages I've discussed. A protocol called 
DDE (dynamic data exchange) describes 
how to use these features and shared 
memory to implement "hot links" be- 
tween applications. For example, Micro- 
soft's new Excel program can exchange 
data with other Windows applications 
under program control. They don't all 
have to be part of a single application. 

Spy is a useful tool for Windows devel- 
opers, both for finding examples of how 
other programs do tasks and for helping 
track down bugs. It also shows the basic 
structure of a Windows application, 
which is quite unlike a conventional DOS 
application. Although getting used to this 
structure can take a while, the payoff is 
great— Windows provides a rich set of 
tools for the applications developer. ■ 

[Editor's note: The source code for Spy is 
available on disk, in print, and on BIX. 
See the insert card following page 208 for 
details. Listings are also available on 
BYTEnet. See page 4. You will need the 
Microsoft C compiler and the Microsoft 
Windows Software Development Kit to 
use the source code. ] 



110 Inside the IBM PCs • B Y T E 1987 Extra Edition 



Circle 188 on Reader Service Card 



In a direct comparison between 

printer sharing devices, our competition 

would like to remain anonymous. 



• 2, 4 or 6 input ports 

• Serial or parallel output 
•0Kb to 1MB of RAM - 

often soldered, not adapt- 
able for memory expansion 

• Sequential scanning or 
concurrent input 

• Warranty — 90 days to one 
year 

• Compatible with most 
printers 





See us at 



GO 

November 2-6, 1987 

Las Vegas Convention Center 

Las Vegas, Nevada 
Booth #813 



©Copyright Western Telematic Inc., 1987. All rights reserved. 



'87 



• Up to eight serial input 
ports 

• Serial and parallel outputs 

• Concurrent input and out- 
put for all ports 

• Easy, menu- driven config- 
uration 

• Separate baud rate, flow 
control, parity and messages 
for each port 

• Multiple copy command 

• Priority print command 

• User-definable print 
direction 

• Field expandable memory 
up to 2MB 

• Printer emulation axles 
and prompt/ response 
messages stored in RAM 



• Automatic top -of form 
generation 

• Self- testing features 

• Buffer clear, pause and 
top-ofform controls 

• LJlDs display buffer 
status, current port activity 
and printer ready 

• Optioned parallel/ serial 
converter 

• Compatible with virtually 
all printers and plotters 

• Quality and reliability 
bacfied by a one-year war- 
ranty; lifetime warranty 
optional 

• Unlimited 800# hotline 
support 

• UL approved 




LASERNET™ allows up to eight users to 
quickly and easily share any two printers 
or plotters. 

For the advanced features you demand from 
a printer sharing device, at an attractive price, 
LASERNET is your only choice — for general 
business, CAD/CAM and desktop publishing. 
And, after 23 years of market leadership, you 
know that Western Telematic will continue to 
support its products and customers for years 
to come. So, don't get left holding the bag. Call 
us now for a FREE brochure at (800) 854-7226, 
in California (714) 586-9950. 




A Product of Western Telematic Inc. 

Lyj±lLb]D western telematic inc. 5 sterling, irvine, California 92718 
(800)854-7226 • in California (714)586-9950 -telex: 467741 



Circle 243 on Reader Service Card (Dealers: 244) 



BYTE 1987 Extra Edition 



Inside the IBM PCs 111 



Introducing the first software system that solves 
all three compatibility problems: Between 
applications Between PCs. And even 
between brands of software. 

We call it Smart 3.1 
You'll call it a lifesaver. 



Between Applications 

Smart includes the full 
range of productivity appli- 
cations your office needs: 
Word processing, data base 
management, spreadsheet 
analysis, business graphics, 
and communications. 

All perfectly integrated 
for easy transfer of data 
from one application to 
the next. 








Send my FREE demo disk. 



NAME: 

COMPANY:. 
ADDRESS:. 



CITY:. 



.STATE:. 



.ZIP: 



TELEPHONE:. 



Check only one of the 
following: 

□ individual computer user 

□ work in an organization 
with many computers 

□ computer store retailer 

□ VAR, VAD, consultant 
or developer 



CURRENT OR PLANNED ENVIRONMENTS 



Check all that apply: 

CURRENT PLAN 

□ □ NCR Tower Family 

□ □ AT&T 3B Series 

D □ Microport UNIX System V 
D D SCO XENIX System V 
D D Altos 

a a Apoiio 

D □ Sun 
D D Plexus 



CURRENT PLAN 

□ □ Convergent 

□ D IBM PS/2 

D D DOS single user 

D D DOS LAN 

D □ Macintosh 

D □ DEC VMS 

D □ other 



NO POSTAGE 

NECESSARY 

IF MAILED 

IN THE 

UNITED STATES 



BUSINESS REPLY MAIL 

FIRST CLASS PERMIT NO. 2502 SHAWNEE MISSION, KS 



POSTAGE WILL BE PAID BY ADDRESSEE 

INNOVATIVE SOFTWARE INC. 
DEFT. 70010BYT 
P.O. BOX 15998 
LENEXA, KS 66215-0998 



l,ll„.ll....l,l,„ll.l.l.l.l,.l.l..l.l„ll II. I 



And only Smart Jets you 
create custom programs 
that actually jump between 
applications. So, for in- 
stance, a single keystroke 
can transform a worksheet 
into a 3-D pie chart, paste 
the chart into a document, 
and send the document via 

"iem to the home " J 




Smart's "SEND" command makes it 
easy to move data between applications, 

limiting for record lock) 



Smart automati 
in multiuser envi 



Between Workstations 

Even if your PC isn't on 
a local area network (LAN) 
now, there's a good chance 
it will be soon. 

And with Smart, you'll 
be ready: 

Every Smart application 
■includes a fully automatic 
File or Record-Locking 
scheme for shared data. So 
tt out of the box> Smart 
be used either on a 
;le user PC or on a 
N workstation. 
There are even versions 
of Smart for multiuser 
UNIX® and XENIX® 
| Which, according to 
Information Week, 
makes Smart "the first 
to provide DOS-UNIX/ 
XENIX LAN connectivity 
without sacrificing 
power and features" 



Between Software Brands 

Old software can be re- 
placed, but old data can't. 
So you'll be pleased to learn 
that Smart is fully com- 
patible with files already 
created with programs like 
Lotus 1-2-3 and dBase HI 
Plus. 

Smart also reads and 

writes ASCII, SYLK,DIF, 

andDCA. 

Oh by the way, there's 
something else Smart is 
perfectly compatible with: 
%u: Fact is, nearly every 
top computing magazine 
has praised Smart for its 
ease of use, on-line help, 
extensive tutorials, and 
clearly written manuals. 



But why not see for your 
self? 

Just return the attached 
card, or call toll-free 
(800) 331-1763 (in Kansas, 
Alaska or Canada call 
(913) 492-3800) and we'll 
rush you a free Smart demo 
disk and information kit. 




Smart 



Well 






1987, Innovative Software, lnc SmartWare, Lotus 1-2-3, dBase, Xenix and Unix are registered marks of Innovative Software, Lotus Development. AshtonTate, Microsoft and AT&T respectively. 



MICROPROCESSOR 
MASTERY! 

The Development System that 
Supports 150 Different Microprocessors. 



A complete solution 



Here, at last is the working environ- 
ment of the future for developing 
error-free and efficient microproces- 
sor code. Save time and money with 
UniLab H's seamlessly integrated 
toolset: 

An 8/16-Bit Universal Emulator- 
With UniLab's full selection of symbolic^ 
debug commands you can 
quickly display and change 
all registers, memory, and 
ports, plus set software 
and hardware breakpoints. 
An Advanced 
48Channel 
Analyzer- 
Most other 



Find Bugs Fast 



Searching for bugs by single-stepping 
through suspect code can take forever. 
How, with UniLab, just specify the 
bug symptom you are looking for as 
a trigger spec and let UniLab catch the 
^uneneip bug for you as Pop . upModei 

menus. Command yOUr program Selection 

Glossary, and • , l- panel called 

word cist. runs in real time. bU50 ftkeu. 



Get Running Fast 



Windows can be 

used to viewsource 

files, previous 

traces, and more. 



*ddr> <to «4dr> B1KL0AD <f llonum) 
Luis « binary file fro* ditk into aviation mmory. Pr 
for tke buw of the f ila If you «Wt include it on the 
lino. 

• 
^ 0f0tm SUrts lotting a binary file Into the fro* tUi 
~~* loading at the to addr, or when end of file it 

Tke binary file etould contain a erofran. Can 

to load the product of a cross coup Her Into e 

sescry. 






DISPLAY 

CON! COUMN 

PAGINATE 
FIXED HEAD 

I to V 



You probably won't use your develop- 
ment system every day. You do need 
a system that's easy to learn, and easy 
to come back to. That's UniLab. It lets 
you use commands or menus-or a 
mixture of both. The same commands 
work for all MPUs. Useful help screens, 
n on-line manual & glossary, instant 
pop-up mode panels, a quick 
command and parameter 
reference, are at the ready. 



Affordable, Expandable 



Symbol ( 
translation 
or source code 
line display. 



development 

systems are 

dead in the 

water if there 

is a hardware fault such 

as a simple bus short How, 

you can use the power of 

UniLab to home in on both 

software and hardware 

problems quickly. 

An Input Stimulus Generator- 

You conveniently specify system 

inputs and observe the results. 

A Built-in EPROM Programmer 

helps finish the job! 



19 XFDJUT 8814 218881 LD KL.KDl.TIL - 

1C 8817 812888 LD BC.28 

IF B61A 118818 LD K,TAftC_TBL 

22 STOIJtom 861* EDB8 LDIR 

24 HBI.TBL 8188 16 read 

25 fAJKTBL 1888 16 urite 

26 STOJUHAIA 8810 EDB8 LDI1 
■tttsj 



AF=FEB1 (sz-a-pnC) BC=PFFP DE=*6FF HU1988 1X=1234 IV=567B SP=lfifS PC=8B14 • <' 
X FKR.BUT 8814 218881 LD HL,HD1_IBL (next step) 

igilB orB (trace resune) ED (top) n TN (fro* step n) T (f i 



x 



screen displays UniLab trace 

scroll off into 
> history buffer- \ lltenng 

c™ be viewed e i iminates extraneous 

information and shows 
you only the program steps of interest 



At less than $5,000 UniLab 
costs less than 
our less-able 
competitors. 
You can add our 
new Program 
Performance 
Analysis option 
to help you 
optimize your software. If 
you don't need UniLab's 
power, other models are 
available from $2,995. Get 
context yfoe story on UniLab II and how it can 

sensitive f .... c. . 

prompt \me.4 revolutionize your software design 



14 218881 LD HL,18B 

1? 812888 LSBC2S 

ift 118818 LD DM988 i 

10 KDB8 LDIR 

if 2imr ld HL.mr ■ 

22 3118 LDA,1B 

24 77 LD (HL),A 

25 C38888 JP B8 



Disassembly of 
mcode in memory 
can be compared 
withtrace in 
adjacent window. 

Symbolic 
breakpoint 
register 
display. 



Development Dreams Come True 

Use Unilab's advanced 
windows to set up 
your screen the 
way you want to... 
view multiple items 
of interest. Imagine 
being able to auto- 
matically compare a 
current trace with previous 
trace data to instantly 
determine differences. You 
can set breakpoints, single- 
step, then go back to the an 
alyzer without missing a beat, 
If you make a change in your 
code, use UniLab's built-in line 
by-line assembler to instantly patch 
the fix and test the results. Think of 
the time savings. 

114 Inside the IBM PCs • BYTE 1987 Extra Edition 



Set up for any 8- or 
16-bit processor 
in seconds! 

^ Thanks to our innova- 
tive emulation 
approach, moving 
between processor 
types requires only 
a new emulation 
module and soft- 
ware change. You 
save both money 
and time: Our 
inexpensive 
Personality Paks™ (only 
about $500) include all the items 
you need for fast hook-up. Orion Micro- 
Targetsr functioning target circuits for 
popular MPUs, let you test your software 
before your own hardware is ready. 




efficiency, as it has for thousands. 
Universities, ask about our Education 
Outreach Discount Program. 

Call Toll-free 1-800-245-8500. 
In California call (415) 361-8883. 




When you own or rent a UniLab II, 
you get access to Orion's team of 
Applications Engineers. 

INSTRUMENTS, INC. TELEX 530942 

Circle 160 on Reader Service Card 



INSIDE THE IBM PCs 



A report on the performance of the latest generation 
of floating-point coprocessors 



The State of Numerics 



Stephen S. Fried 



As the line separating person- 
al computers and minicom- 
puters/workstations blurs, a 
new acronym pops up more 
and more frequently when 
comparing machine perfor- 
mance. Alongside MIPS (mil- 
lions of instructions per sec- 
ond), we must contend with 
MFLOPS, or megaflops (mil- 
lions of floating-point opera- 
tions per second). 

MFLOPS become an im- 
portant measure of perfor- 
mance when you compare ma- 
chines that are intended to 
perform image processing, 
graphics-intensive CAD, 
weather modeling, chemical 
simulations, and other appli- 
cations that intensively ma- 
nipulate all floating-point 
numbers. 

Until recently, we dealt ex- 
clusively in the realm of frac- 
tional MFLOPS. Today, how- 
ever, several devices can 
deliver a million or more 
FLOPS (see the text box 
"Available Floating-Point 
Solutions" on the next page). 
This article conveys my early 
impressions of several of these 
new devices. 



Beyond the 8087 

There has been an incredible 
jump forward in numerics since the ad- 
vent of the 8087 in 1981. The 5-mega- 
hertz 8087 takes 80 to 120 cycles to per- 
form inter-register 80-bit operations. 
That translates into 16 to 25 microsec- 
onds per operation, or 40,000 to 60,000 
FLOPS. For the sake of argument, we 
will call the 5-MHz 8087 a 50,000- 
FLOPS processor. 

In the last several years, the rapid de- 
velopment of silicon compilers and CAE 
tools has resulted in very fast (i.e. , wide) 




combinatorial arrays that function as ac- 
cumulators, multipliers, and barrel shift- 
ers. These devices are now available to 
designers as cells in sophisticated CAE 
systems, and they form the basic building 
k blocks of floating-point devices, includ- 
ing coprocessors. Using these tools and 
custom design techniques, it is possible 
to build single-chip floating-point accu- 
mulators or multipliers that perform up to 
60 million single-real instructions per 
second (i.e. , these devices are up to 1000 



times faster than an 8087). 

Several companies offer 
floating-point chip sets and/or 
cells, including LSI Logic, 
AMD, Analog Devices, Wie- 
tek, and Bipolar Integrated 
Technologies. These chip sets 
are most frequently built into 
specialty data-flow machines 
that do digital signal process- 
ing. In these machines, the 
numbers flow along a pipeline 
that contains 10 or more pro- 
cessors. The total throughput 
of one of these pipelined ma- 
chines can be in the range of a 
supercomputer— 100 to 1000 
MFLOPS. 

Until recently, these de- 
vices have been accessible 
only to microprocessor-based 
systems that have array pro- 
cessors installed. This has 
changed with the advent of the 
Wietek/Intel 1163, an appli- 
cation-specific integrated 
circuit (ASIC) that interfaces 
the Wietek 1 164/65 accumu- 
lator/multiplier chip set to the 
80386 data bus. 

The WTL 1 163 glue chip 
contains an 80386 bus inter- 
face unit, a microcode se- 
quencer, microcode ROMs, 
and a register file arranged as 
32 single-real (single-preci- 
sion) registers. These regis- 
ters can be used to store 32 single-real 
operands or 16 long-real (double-preci- 
sion) operands. The Weitek 1163/64/65 
chip set, referred to as the WTL 1 167, 

continued 

Stephen S. Fried is best known for his 
work in chemical lasers and the use of nu- 
meric coprocessors in the IBM PC. He is 
vice president of research and develop- 
ment at Micro Way (P.O. Box 79, Kings- 
ton, MA 02364). 



Illustration: Randall Enos © 1987 



BYTE 1987 Extra Edition • Inside the IBM PCs 115 



STATE OF NUMERICS 



Available 
Floating-Point Solutions 



The WeitekWTL 1167 

Weitek offers a three-chip set installed 
on a small daughterboard that is de- 
signed to plug into an 80387 socket. The 
WTL 1167 features thirty-one 32-bit 
registers for storing operands and inter- 
mediate results to minimize data trans- 
fers with the 80386. The Weitek 1167, 
which conforms to the IEEE-754 binary 
floating-point arithmetic standard, is 
said to yield over 3.5 million Whet- 
stones at 16 MHz (see table 1). 

The WTL 1167, which costs $1995, 
does not provide on-chip transcenden- 
tal or trigonometric functions. 

The Motorola 68881/68882 

The Motorola floating-point coproces- 
sors use eight 80-bit internal registers to 
perform IEEE-754 standard arithmetic 
operations. The 68881 and 68882 con- 
tain an on-chip ROM that makes avail- 
able 22 constants, including pi, e, and 
powers of 10. 

The Motorola coprocessors are very 
similar to the Intel coprocessors, except 
that they have registers instead of a stack 
and were the first coprocessors with in- 
line transcendentals, a feature picked up 
by the 80387. 

The 68882 achieves higher perfor- 
mance than the 68881 with the addition 
of a conversion control unit (CCU) that 
improves the performance of the FMOVE 
instruction and most arithmetic opera- 
tions by speeding up the conversions be- 
tween the external 16-, 32-, and 64-bit 
data formats and the floating-point 
unit's (FPU's) internal 80-bit format. 

A dual-ported floating-point data reg- 
ister adds further to performance by per- 
mitting concurrent execution of load, 
store, and compute operations. 

Motorola claims that the 68882 can 
perform at two to four times the rate of 
the 68881. Peak benchmarks of the 20- 
MHz 68881 have yielded 1.2 million 
Whetstones, while the 16.67-MHz 
68882 processor has yielded 3.5 million 
Whetstones. 

Both processors can be used in the 
Mac II, and they retail in the $400 to 
$800 range. 

The Intel 80387 

The 80387 from Intel operates indepen- 
dently of the real or protected modes of 
the 80386 microprocessor. Using eight 



Floating-point unit 



Z\ 











i u 




System 
services 
























1 









32 



4K bytes 
of on-chip 
RAM 



<C^ 



V 



A 



Memory 
interface 



V 



^> 






/So-N] U^k 



32-bit 
CPU 



32 



V^-i/l 



interface 



A 



>0 



Link 
interface 



A 



^V 



Link 
interface 



A 
\r 



^O 



Link 
interface 



Event 



A 
V 



^> 



32-bit external memory bus 



Figure 1: A T800 Transputer block diagram (courtesy oflnmos Corp). 



Table 1: Comparative numeric performance. 

R/M/287 R/M/387 NDP/387 NDP/1167 OCCAM/T800 



Savage (sec.) 12.96 
Whet 182K 



5.22 
403K 



1.59 
1354K 



1.55 
3600K 



1.2 
3700K 



116 Inside the IBM PCs • BYTE 1987 Extra Edition 



STATE OF NUMERICS 



80-bit registers, the 80387 performs all 
operations in extended real format and 
automatically converts 16-, 32-, or 64- 
bit integers or 32- and 64-bit floating- 
point numbers into this format. The dy- 
namic range of the IEEE-754 standard 
numerics used by the 80387 is 10 ±4932 
for extended precision. The 80387 can 
also accept 18-bit binary-coded decimal 
operands. 

The 80387 has built-in function sup- 
port for trigonometric, logarithmic, ex- 
ponential, and transcendental opera- 
tions. The 80387 can be driven by the 
microprocessor's clock (synchronous 
mode) or by a separate clock (asynchro- 
nous mode). The 80387 executes 80287 
code a factor of 3 fester than the 80287. 
However, its transcendentals run a fac- 
tor of 8 faster when properly encoded. 
You can purchase 80387s for $500 to 
$800 depending on speed, source, and 
quantity. 

Intel claims "4 to 6 times greater per- 
formance" for the 80387 over the previ- 
ous-generation 80287. The 80387 costs 
$500 in quantities of 100. 

The Inmos Transputer 

The Inmos T800 Transputer, from Cam- 
bridge, England, was preceded by 16- 
and 32-bit devices, neither of which had 
an FPU. Each Transputer has four link 
interfaces for hooking it up to four near- 
by Transputers when built into a Trans- 
puter network. 

TheT800 (see figure 1) contains a 32- 
bit T414B, to which an FPU has been 
added (on-chip). The 64-bit FPU con- 
forms to the IEEE-754 standard for 
floating-point arithmetic. The T800 
provides no support for transcendentals 
or trigonometric functions. 

Without an FPU, the 10-MIPS T414b 
Transputer (the 32-bit predecessor of the 
T800) costs about $2000 packaged on an 
IBM PC card with 2 megabytes of high- 
speed dynamic RAM. If you need float- 
ing-point performance, the T800 adds 
$1000 per node to the expense. The on- 
board FPU delivers 1.5 MFLOPS (at 20 
MHz) to 2.25 MFLOPS (at 30 MHz). 
This is about 15 times the performance 
of a 10-MHz 8087, or twice the perfor- 
mance of a 24-MHz 68882. 

The cost of floating-point perfor- 
mance for the T800 is less than $1000 
per MFLOP. True supercomputers run 
between 100 and 1000 MFLOPS, indi- 
cating that a true "personal supercom- 
puter" could be built using Transputers 
for between $100,000 and $1,000,000 
—not cheap, but still a factor of 5 less 
than current prices of Crays and ma- 
chines of their ilk. 



performs only the four basic operations 
(addition, subtraction, multiplication, 
and division), along with conversions and 
compares. However, it performs them so 
fast that all the other numeric coproces- 
sors, including the 80387, look under- 
powered beside it. 

The best- and worst-case timings for 
the combined chip set are 7 cycles (for 
single-real) to 11 cycles (for long-real) 
for an interregister operation. At 16 MHz 
(the nominal speed available as of June 
1987), that equates to overall processor 
timings of 440 to 700 nanoseconds. Ex- 
pressed as rates, that results in through- 
puts of 1 .4 million (long-real) to 2.2 mil- 
lion (single-real) operations per second. 
While not quite the 60 million operations 
claimed by the fastest of the floating- 
point chip sets, it's still 30 to 50 times the 
speed of an 8087 and points us in the di- 
rection of things to come. 

The Problems 

The problem with achieving high float- 
ing-point throughput in a microcomputer 
is data-bus bandwidth. For example, sup- 
pose our goal is to perform a long-real dot 
product— multiply two long-real vectors 
together to create a new long-real vector. 
Each element will require us to read in 
two long-real numbers (each 8 bytes 
wide), perform a multiply, and then store 
a long-real result. The total transaction 
involves reading or writing 24 bytes and 
performing a multiply. Assuming we 
want to do 1 million operations per sec- 
ond, that specification dictates a system 
data-bus bandwidth of 24 megabytes per 
second. A 16-MHz 80386 has a data-bus 
bandwidth of 32 megabytes per second. 
This means it is capable of sustaining the 
I/O associated with 1 million dot product 
multiplies per second, but would fail at 2 
million (which requires a data-bus band- 
width of 48 megabytes per second). 

This example reveals the Achilles ten- 
don—vector operations— of coprocessors 
in general. However, in situations where 
the numbers being processed are stored 
and stay in registers, the data bus is not in 
the computational loop, and it becomes 
possible to keep the coprocessor fed with 
operands. 

Scalar operations, where the operands 
are stored in the registers, are the strong 
point of the WTL 1 167 and coprocessors 
in general. 

To achieve the best vector perfor- 
mance, the WTL 1167 was designed in 
an unorthodox manner. The key to good 
vector speed is minimizing the I/O asso- 
ciated with passing instructions to the co- 
processor. Reducing the data-bus band- 
width required for instructions makes 
more bandwidth available for operands 
(data). The designers of the WTL 1167 



accomplished this by memory-mapping 
the processor. In the WTL 1 167, the lo- 
cation to which you pass a piece of data 
specifies what you want the processor to 
do with the data. The 80386 has a 32-bit 
data bus and a 32-bit address bus. During 
I/O, the 80386 actually emits 64 bits of 
information. By dedicating a 64K-byte 
block of addresses to the 1 167, 16 of the 
32 address bits end up getting used to 
transfer instructions, while the 32 bits of 
data end up doing their original job, 
transferring data. By old standards, 64K 
bytes is a lot of memory to waste on a 
memory-mapped peripheral, but it is in- 
consequential in the 4-gigabyte real ad- 
dress space of the 80386. 

The WTL 1 167 is not the only proces- 
sor that has benefited from the 100- to 
300-ns floating-point times that are easy 
to achieve with CMOS technology. The 
Inmos T800 Transputer also achieves 
overall floating-point speeds that range 
from 233 ns (single- and long-real adds) 
to 700 ns (long-real multiplies). 

The main reason for the performance 
differences I uncovered between the 
T800 and the WTL 1 167 (see table 1) is 
their design philosophy. The WTL 1 167 
has a reduced-instruction-set-computer- 
like large register file that contains 32 
single-real registers. This makes the 
WTL 1167 very good for solving prob- 
lems that are scalar-bound (i.e., a small 
number of local variables interact with 
each other). It turns out that even super- 
computers are not much better than a 
WTL 1 167 at solving these types of prob- 
lems. Al Cameron of the Harvard Col- 
lege Observatory finds that a Wietek- 
equipped Sun workstation provides 20 
percent of the throughput of a Cray for 
performing some astronomical simula- 
tions. He attributes this to the fact that the 
most efficient algorithms for these prob- 
lems cannot make use of the vector or 
parallel facilities of the Cray. The WTL 
1167 shines in his application because it 
can keep its variables in the numeric data 
processor (NDP) and take complete ad- 
vantage of its throughput (i.e., his prob- 
lem does not get bogged down in moving 
numbers from memory to the NDP). 

The T800 Transputer architecture is 
not at all like that of the WTL 1 167: The 
T800 has only three floating-point regis- 
ters arranged as a stack and an interface to 
off-chip memory that is less efficient than 
that employed by the 80386. To get the 
T800 to hum, you have to take advantage 
of its strong points— the 4K bytes of very 
fast on-chip memory (50-ns static RAM) 
and the fact that the CPU and the NDP 
are on the same chip and are interfaced in 
such a manner that it is possible to get a 
lot of concurrency between the two units 

continued 



B Y T E 1987 Extra Edition • Inside the IBM PCs 117 




*ax program you can aepend ^*>**mW 

upon. A program with over 

500,000 returns filed last year. 

TurboTax. A program that fills 

ALL your needs, year after year. 

Here's what you'll need this year: 

• All the new tax law changes, includes the new forms! 

• FAST— complete tax calculation in 3 seconcjs. 

• Easy To Use— pop-up menus and windows. 

• On-line Help 

• Over 35 forms— all the forms you'll ever need 

• IRS Approved Dot Matrix 1040— for your IBM/Epson 

• IRS Approved printouts on your personal printer 

• Our Exclusive Quick-Look Tax Window 

• IRS Instructions On-line 

• Our Quick-Link Forms Locator— so you can easily 
find the appropriate form by subject. 

• Also. ..Pin-feed 1040s Included 

• Full Depreciation Support 

• Automatic Supporting Schedules 

• Pop-up Calculator and Notepad 

• Full Override Capability 

• 1988 Planning included FREE! 

• Data Examiner— helps pinpoint 
any omissions in the return 

• Rapid "Hot key" movement 
from form to form 

• Documentation— the most 
complete you'll find anywhere 



Still The 
Critics' Choice! 

"World Class Winner- 
PC World readership 
"simply the best PC based tax 
preparation program ever 
written"— Jim Seymour 
'Triple Crown: form 
preparation, tax planning and 
elegantly written software"— 
Money Magazine 
"It makes doing your taxes 
almost fun"— PC Magazine 
"TurboTax takes the prize for 
most forms"— InfoWorld 
"TurboTax is still the easiest 
personal tax return on the 
market to use and learn"— 
PC Magazine 

"the only thing TurboTax can't 
do is print the money"— 
PC World 



$75 




Tax Preparers: 

Our professional level package, 
TurboTax Pro Series/1040 has 
become the best selling software for 
in-house preparation. To find out 
why, call or write. Ask about our 
11 20- 11 20S and 1065 packages. 



TurboTax Does States, Too! 



Why not complete the chore with a TurboTax 
State return program. TurboTax is the ONLY 
personal program with 26 integrated state 
tax packages. Only $40!! 



See your local dealer. Or order 
direct. $75. Slate programs $40 
ea. Shlpplnrj Included. CA 
residents add 6% sales tax. 
Visa/MC accepted. Version 
1988,5.0 for 1967 preparation 
and 1988 planning. 



V 



d TurboTax 

\~\ Minimal or no tax 

Q Maybe next year 




Steady, Dependable, Year After Year 



5045 Shoreham Place.Suite 100 
San Diego, CA 92122 



118 Inside the IBM PCs • BYTE 1987 Extra Edition 




STATE OF NUMERICS 



(see figure 1 on page 116). 

In the 80386/WTL 1167 duo, the 
80386 is actually a little underpowered. 
As a result, it often acts as a handmaiden 
for the WTL 1167, rarely getting iar 
enough ahead to make it possible to 
achieve the kind of overlapping that we 
are used to with the 8086/87. 

On the other hand, the two computa- 
tional units of the T800 were designed 
from the start as a matched pair. Conse- 
quently, they achieve a high level of con- 
currency in situations where the real 
numbers being processed come from the 
high-speed on-chip storage. As a result, 
the T800 shines in situations where every 
floating-point operation also requires a 
prior 32-bit operation to compute the lo- 
cation of the operands being processed. It 
also turns out that the deep stack of the 
WTL 1 167 is now considered a hindrance 
by operating-systems people who are 
concerned about the time required to save 
the state of the processor during a context 
switch. The bottom line for really taking 
advantage of the scalar speed of the WTL 
1 167 is to run it on single-threaded oper- 
ating systems (like MS-DOS) that let you 
take full advantage of the RISC-like reg- 
ister file of the 1167. 

The Rest of the Story 

The other factor that complicates proces- 
sor evaluations is the role of compilers 
and software tricks in benchmarks. Some 
benchmarks measure the overall quality 
of a processor or compiler. A good com- 
piler can improve some benchmarks by a 
factor of 10 by simply moving loop-in- 
variant code out of loops. The same trick 
can also be done by the implementer of a 
benchmark like the Whetstone when 
translating the Whetstone to a new lan- 
guage like C or OCCAM. Another soft- 
ware factor is library quality: Two of the 
products I compared are still in the beta 
phase of their developments (the WTL 
1167 and the T800) and are affected by 
the immaturity of their numerics librar- 
ies. In the case of the 8087, it took three 
years to really refine some of the 8087 
libraries. 

I ran the first benchmarks (R/M/287) 
on an AT running at 8 MHz with a 10- 
MHz 80287 (see table 1). The bench- 
marks were compiled with R/M FOR- 
TRAN. The Savage is 10,000 iterations 
of the well-known Savage benchmark, 
while Whet refers to the standard double- 
precision Whetstone benchmark. The 
second column (R/M/387) also used 
R/M FORTRAN, but this time I ran it on 
an IBM PC AT equipped with an Intel In- 
board (16-MHz 80386/80387). The in- 
crease in speed of 2 to 2 Vi times tells us 
that the main effect in moving from an 8- 

continued 



Circle 48 on Reader Service Card 



Share Any Printer 



HOST 




PrintDi rector provides the ultimate in printer 
sharing. 

□ Share any type of printer: laser, plotter, dot 
matrix, letter quality, and FAX. 

D Connect any type of PC running any applica- 
tion to serial or parallel printers, using proven, 
reliable asynchronous technology. 

□ Print any document without waiting, using 
concurrent I/O and automatic print buffering. 

□ Plain and simple— the Auto-Install program 
and understandable, pop up menus make set 
up and operation fast and easy. 

Call: 1-800-243-2333; in California: 
1-800-247-2006 



PrintOirector 



Digital Products, Inc. 
108 Water Street 
Watertown, MA 02172 
617-924-1680 





Circle 74 on Reader Service Card 



PrintDirector is a trademark of Digital Products Inc. 

B Y T E 1987 Extra Edition • Inside the IBM PCs 119 



Circle 220 on Reader Service Card 



SPEEDUP YOUR PC/XT NOW 



NORTON SI = 9.4/10.3 




You know that SPEED is the only thing your PC/XT 
never has. Its brain takes too much time to think. 
Have it transplanted now with the EPC motherboard 
and your system would yield an astonishingly high 
performance, exceeding even that of the PC-AT. 

EPC is simply the FASTEST PC/XT Motherboard 
in the World that is fully compatible to all PC/XT 
hardware and software. It's 100% designed and made 
in CANADA and absolutely not a downsize AT clone. 
EPC comes with an step-by-step installation manual 
plus a TWO-YEARS warranty and prices only 
US$399.00 (with 0Kb) 



• 8 XT slots 

' XT keyboard input 

' XT Power supply input 



Electronics Inc. 



SPECIFICATIONS 

' : ' 80286-10 CPU in 8088 mode 

*' Dual speed : 8Mhz/10Mhz 

,: ' Socketed for 80287 

,: ' Socketed for BIOS/640Kb RAM * Dimensions: 8.5in.x 1 4in. 

* Industrial Grade 4-layer PCB (fit most XT clone cases) 



Dealer Inquiries Welcome 



6767 Cote Des Neiges Suite 320 
Montreal,Quebec,CANADA H3S 2T6 
Tel: (514) 340-1895 



$$£*»**> 



AN ALMOST FOOLPROOF 
WAY TO MAKE 
ARCHIVAL BACKUPS OF 
PROTECTED SOFTWARE! 

The Copy II PC Option Board is an easy- 
to-use add-in board that will give your 
PC the same disk duplication technology 
used by most disk duplication firms (who 
put the copy protection on software in 
the first place). 

DUPLICATES NEARLY 
ALL PROTECTED 
DISKETTES. 

The Option Board can easily backup 
almost all protected diskettes for the 
IBM PC, including ones software-only 
backup programs can't touch. It even 
includes a track editor that will allow the 
moretechnically inclined to look at 
protection schemes and edit any data on 
a diskette. 



The Option Board uses a half-size slot in an 
IBM PC, XT or AT, Heath/Zenith 150, 151, 
158, Compaq Deskpro. Requires: 1 360KB 
drive, 256K memory. Extra $15 cable 
required for Compaq Portable, HP Vectra 
and Tandy 1000. 

Call 503/244-5782, M-F, 8-5 (West 
Coast time) with your E3 MB in hand. 
Or send a check for 
$95.00 U.S. plus $3 s/h, $15 overseas. 
Please specify your computer brand 
when ordering so we can send you the 
correct cable. 

$95.00 

Central Point Software, Inc. 
9700 S.W. Capitol Hwy., #100 
Portland, OR 97219 

CeiiirdPmrit 
Software 



Backup utilities also available for the Macintosh, Apple II, Commodore 64/128 and Atari ST. 



STATE OF NUMERICS 



MHz 80286 to a 16-MHz 80386 running 
the same code is on clock speed (which 
doubles). 

The next column in table 1 (NDP/387) 
shows what happens when you recompile 
the same benchmarks with an 80386 na- 
tive-code FORTRAN. The typical speed- 
up when you recompile a 16-bit applica- 
tion with a 32-bit compiler is a factor of 3 
to 5. There are two reasons for this. First, 
32-bit operands can now be stored in reg- 
isters instead of in memory (this normal- 
ly speeds things up by a factor of 3) . Sec- 
ond, the 32-bit operations are taking 
place in registers using in-line instruc- 
tions instead of subroutine calls (another 
fectorof2). 

The last benchmark reinforces the im- 
portance of using systems in the manner 
in which they were intended. In other 
words, 32-bit processors run best execut- 
ing 32-bit code. 

The fourth column (NDP/1167) was 
generated by an Avalon accelerator board 
for the Digital Equipment Micro VAX, a 
board that gives the Micro VAX the abili- 
ty to run MS-DOS or Unix applications 
on an 80386/WTL 1167 accelerator 
faster than it can run its native VMS ap- 
plications. The interesting thing here is 
not the much higher Whetstone achieved 
by the 1167, but that the WTL 1167 is 
only slightly better in the Savage than the 
80387-equipped AT. I attribute this to the 
fact that the libraries used were "univer- 
sal" C libraries, and I expect this to 
change when hand-coded Wietek librar- 
ies are used. However, it also points out 
that the built-in transcendentals of the 
80387 are now very good. 

The last benchmarks were taken on a 
20-MHz Transputer board running a 
prototype Inmos T800 Transputer. The 
code was generated by a stand-alone OC- 
CAM II compiler. The benchmarks were 
enigmatic at first. The problem turned 
out to be a beta release of OCCAM that 
was placing many floating-point scalars 
in off-chip memory. I had similar prob- 
lems with the 80387 until I used in-line 
80387 operations. As table 1 shows, the 
Transputer generates the best times but 
also uses the fastest clock. 

The Way to Go? 

The bottom line for top-end performance 
is a toss-up between the WTL 1167 and 
the T800. If you're doing scalar opera- 
tions and have an 80386-based machine, 
the 1167 is the clear winner. If you plan 
to stay with an XT or AT, then a Tran- 
sputer-based coprocessor card is a possi- 
ble solution, especially if you are capable 
of recompiling in OCCAM and running 
your application on a network of T800s, 
in which case there is no upper limit on 
CPU throughput. ■ 



120 Inside the IBM PCs • BYTE 1987 Extra Edition Circle 47 on Reader Service Card 

i 



♦ Introducing PC AT Version 3 



♦ ♦ ♦ 



£ 






The Serious Ada Compiler 
For Serious Ada Programmers 

If you're a serious Ada programmer today, or expect to be one— if 
you're serious about DoD business and those new DoD directives 
—you look for a lot more in your Ada compiler than just validation. 
And the new fourth-generation Alsys Ada compiler Version 3 for 
the PC AT and compatibles gives it to you. 

Take code quality, for example. Version 3 generates the highest 
quality code of any Ada compiler on any machine! Check the PIWG 
benchmarks, and those of U-Michigan. Compare the quality with 
code from the mature C and Pascal compilers you're used to. Check 
especially where you might need quality most, and where Version 3 
shines— in the implementation of procedure calls and exceptions. 
The elimination of code associated with unused subprograms gives 
you large reductions in code size in many applications. 

Consider the Runtime Executive. True production quality. No 
exception-handling overhead is incurred unless an exception is 
actually raised. The Runtime is optimized for programs running in 
limited memory, or running for a long time. That's serious. 

Consider the Ada-specific high level optimizer technology (not 
derived from Fortran or C) that removes redundant constraints 
checks and does so much more for code quality. 

Consider robustness and reliability. Version 3 is written in Ada 
and bootstrapped through itself. That's proof right there that it will 
compile 400,000 lines of Ada code. Beyond validation, we test our 
compilers on hundreds of thousands of lines of extra code— from 
the ACEC tests, and from Ada Repository programs, and from our 
own specially designed code that breaks most other compilers. 

There's a lot more that's serious about Version 3. The new Multi- 
Library environment, for example, that maximizes the efficiency 
of programming teams; error messages that correct, instruct, and 
speed the programming process; human engineering; superb 
documentation and customer support, am 

Send for our free brochure X""y ll It I It~/t 

Tloe Many Facets of Quality. V I I I T C ^ l_ 

In the US: Alsys Inc.. 1432 Main St.. Wakham, MA 02154 Tel: (617) 890-0030 
In the UK: Alsys Ltd., Partridge Mouse, Newtown Rd„ Henley-on-Thames. 

Oxon RG9 1EN Tel: 44 (49D 579090 
In the rest of the world: Alsys SA. 29 Avenue dc Versailles. 78170 La Cclle 

Si. Cloud. France Tel: 33 ID 3918.12.44 



♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦< 

Send mc The Many Facets of Quality. 

Send me more information on the PC AT Version 3 Compiler. 



Name. 



-Call me. 



Company. 

Address_ 



City_ 



Phone. 



_State_ 



_Zip_ 



Alsys. Inc. • 1432 Main Street 'Wakham, MA 02154 




Circle 10 on Reader Service Card 



B Y T E 1987 Extra Edition • Inside the IBM PCs 121 



Here's a solid investment tip. 
For a great value in a quality PC com- 
patible, you owe it to yourself to see 
Hyundai's new line of computers. 
Such as the 8.0Mhz Super- 16T. 

Its low price buys you standard 
features like 640KB RAM, six I/O 
slots, serial and parallel ports, and a 
real time clock with battery backup. 



But that's just the tip of the iceberg. 
Because the Super- 16T also comes 
with Electric Desk— the integrated 
software package that gives you all 
the programs you need on a single 
disk. Word processing, spreadsheet, 
data base, spellchecker, communi- 
cations, plus 197 printer drivers. 

What's more, the Super- 16T also 



comes with the longest warranty 
in the business. And is serviced by 
a nationwide network of specially- 
trained Hyundai dealers. Just the 
kind of support you'd expect from 
a world class company that's $14 
billion strong. 

You'll also find this same kind 
of value with Hyundai's small 







V 






; '/ 



7 





/ 





footprint Super- 286C and diskless 
PC Terminal, too. 

On the surface, all PC compati- 
bles may look alike. But get beneath 
it, and you'll discover one company 
clearly gives you more for your money. 
Hyundai. 

For the Hyundai dealer 
nearest you, call 1 (800) 544-7808. 








r 






VvW 













HYUNDAI 



Circle 104 on Reader Service Card 



TM 



€1987 Hyundai fc'lcctronics America 
4401 Grc.it America Parkwav 

Sama Clara, CA ^5054 1(800) 544-7808 
Track-marks: Electric Desk/Alpha Software 
Corporation: XT&AT IBM, Inc. 



SAVE YOUR PC FROM EARLY RETIREMENT. 






«*°S& 



jrAI 



L^IVW 






^\os 



w,co^' 



//' 





SI 



# m 



I 



GET HAUPPAUGE'S NEW 386 MOTHERBOARD. 

386 SPEED-ONLY $1,495 



Give your PC a new lease on life! With our industry first 
386 MotherBoard, your PC, PC/XT or compatible will 
revel in speeds equal to the Compaq DeskPRO 386. And 
faster Because we've built in 1 Megabyte of high speed 
RAM and a 387 math coprocessor socket for speeds that 
will knock you off your rocker. 

To keep retirement at bay our 386 MotherBoard 
is compatible with the PC/AT (BIOS and I/O) - allowing 
you to run the new generation of DOS, OS/2. We've also 
included a 16- bit expansion slot that accommodates the 
latest I/O expansion card. No accelerator card can give 
you so much versatility. 




With 386 power and true AT software compatibility your 
business, desktop publishing and engineering applications 
will get a boost to boast about! Technical Features ■ 16 MHz 
80386 ■ 1 Megabyte of 100 nsec 4-way interleaved RAM 
■ PC/AT compatible I/O and BIOS for support of OS/2 ■ Seven 
8- bit expansion slots ■ Ttoo 16- bit expansion slots ■ One 
32-bit RAM expansion slot ■ Optional 16 MHz 80387 math 
coprocessor ($695) 

Put the power of the 386 into your IBM PC for 1/4 the cost 
of a 386 computer. And put off your PCs retirement. For 
more information on our easy-to-install Motherboard, call 
1 (800) 443-6284. In NewYork, call (5l6) 360-3827. 
Hauppauge Computer Works, Inc. u al tr\r\^a israt 

358 Veterans Memorial Highway, ilClU ppclUQG! 

Commack, NewYork 11725 



ir.iilntuirkvlltU.rO 



Circle 95 on Reader Service Card 



INSIDE THE IBM PCs 



Switching from real mode to protected mode may finally 
teach us to write well-behaved programs 



286/386 Protected-Mode 
Programming 

Joel Barnum 



There's no such thing as a free 
lunch. Some pitfalls await you 
when you try to update real- 
mode programs to protected 
mode. With the pending re- 
lease of OS/2, a protected- 
mode operating system for 
80286- and 80386-based com- 
puters, you might want to re- 
write existing real-mode pro- 
grams or write new programs 
that execute under protected 
mode. While it is generally 
more reliable, protected mode 
is not totally compatible with 
real mode and places addi- 
tional restrictions on pro- 
grams. This article deals with 
those restrictions, but first I 
will discuss the various modes 
and how they work. 



Modes of Operation 

Real mode is the "power-on" 
mode of the 80286 and 80386 
processors, in which the pro- 
cessor emulates the 8086 and 
8088 microprocessors. Real 
mode has no memory protec- 
tion, and the maximum 
amount of physical address 
space is 1 megabyte. Current- 
ly, PC-DOS and MS-DOS op- 
erate in real mode on the IBM 
PC AT and compatibles. 

To switch to protected 
mode, the operating system 
sets the least-significant bit in the ma- 
chine-status word (MSW). In protected 
mode, the processor verifies every mem- 
ory access so that one program can't cor- 
rupt memory belonging to another. Pro- 
tected mode also enables multitasking 
support and virtual memory. The maxi- 
mum amount of physical memory that an 
80286 operating in protected mode can 
address is 16 megabytes; on an 80386, 
this number increases to 4 gigabytes. 

The 80386 also includes virtual 8086 





mode (VM86), which will enable future 
80386 protected-mode operating systems 
to execute unmodified 8086 programs as 
guest tasks. 

The Segment Descriptor 

Regardless of mode, well-behaved pro- 
grams use symbolic names to address 
segments. For example, listing 1 uses the 
name of a segment, DATA, to initialize the 
DS (data segment) register. In real mode, 
DATA refers to the segment's address, and 



the program loader fills in the 
correct value at load time. In 
protected mode, however, the 
program loader fills in a 16- 
bit number, called a selector, 
that points to the segment in- 
directly via an 8-byte data 
structure called a descriptor. 

The program loader creates 
the descriptor, which contains 
information describing the 
segment. Figure 1 shows a 
segment descriptor. The base 
address is the segment's start- 
ing address; that is, where the 
program loader put it. The 
processor uses this address to 
locate the segment; it is com- 
parable to the segment ad- 
dress in real mode. 

The limit is the maximum 
offset allowed in that segment. 
If a program tries to use an 
offset greater than the limit, 
the processor prevents the in- 
struction from executing. This 
ensures that one program is 
unable to modify another pro- 
gram's memory. 

The access-rights byte con- 
tains bit fields that indicate the 
type of the segment; it in- 
cludes the descriptor privilege 
level (DPL). Each descriptor 
has a DPL ranging from to 
3, with the most privileged. 
One segment cannot access 
another segment that has a higher privi- 
lege. These levels help protect system in- 
tegrity; for example, they prevent appli- 

continued 

Joel Barnum is a partner at Descriptor 
Systems (P.O. Box 461, Marion, 1A 
52302), a training company that presents 
technical workshops in such subjects as 
assembly language programming and 
286 and 386 system architecture. Joel has 
a BSEEfrom the University of Iowa. 



Illustration: RobColvin © 1987 



B Y T E 1 987 Extra Edition • Inside the IBM PCs 125 



286/386 PROTECTED-MODE PROGRAMMING 



cations programs from corrupting the 
operating system. 

The access-rights byte also tells you 
what kind of access is allowed on the seg- 
ment. For data-segment descriptors, the 
access rights indicate that the segment is 
either readable and writable, or readable 
only. For code-segment descriptors, the 
segment can be either executable and 
readable, or executable only. 

The operating system organizes the de- 
scriptors into groups called descriptor 
tables, which contain a maximum of 
8192 descriptors each, numbered from 
to 8191. These tables are of two types: 
the global-descriptor table (GDT), which 
contains those descriptors that are avail- 
able to all programs, and the local- 
descriptor tables (LDTs), which contain 



the descriptors for each task's own seg- 
ments. While each task has an LDT, the 
system has only one GDT. 

To access a segment, you load a seg- 
ment register with the selector. Its index 
and table indicator (TI) fields (see figure 
2) point to a descriptor from the GDT or 
an LDT. During this load, the processor 
locates the descriptor and copies its base 
address, limit, and access rights into an 
extended version of the segment register. 
From then on, the extended segment reg- 
ister contains all the pertinent informa- 
tion about the segment. 

Thus, when a protected-mode program 
loads a segment register, the result is the 
same as in real mode— the segment regis- 
ter contains the segment's address. The 
difference is that the protected-mode seg- 



i 




8 bytes 














\ 




16 bits 

• 


24 bits 
i i 


8 bits 


16 bits 

i 




Limit 


Base address 


Access 
rights 


Used only by 
80386 





Figure 1: The 80286 segment descriptor contains the offset limit allowed and the 
segment 's base address and access rights. 





15 




3 2 1 






Index 


TI 


RPL 















Figure 2: The selector format. The index can range from to 8191, and it points 
to the descriptor. The TI equals if the selector refers to the GDT, or 1 if it refers 
to an LDT. The privilege level (RPL here) is described in figure 3. 



Listing 1 : If you use symbolic segment names to create well-behaved 
programs, your code should work equally well in real or protected mode. 



DATA SEGMENT 

varl DB ? 
DATA ENDS 
CODE SEGMENT 

ASSUME CS: CODE, DS: DATA 

MOV AX, DATA 

MOV DS,AX 

MOV varl, 1 
CODE ENDS 



; symbolic segment name 
; point to data segment 
; sample access 



Listing 2: If you use direct addressing to create poorly behaved programs , 
your code will have problems in protected mode. 

MOV AX, 0B800H ; segment address of color card 

MOV ES, AX ; ES to display memory 

MOV BYTE PTR ES : [0] , ' A ' ; display a character A 



ment register also contains the segment's 
limit and access rights so the processor 
can enforce memory protection. The ex- 
ample in listing 1 should work the same 
in real or protected mode, because it is 
well-behaved and uses a symbolic name 
to refer to its data segment. 

When a protected-mode program vio- 
lates one of the protection rules, the pro- 
cessor generates an interrupt called an 
exception. An operating system can han- 
dle exceptions in various ways, but the 
most probable action is to terminate the 
faulting program. 

Behavioral Problems 

Real-mode programs that are poorly be- 
haved (i.e., that use direct addressing) 
may not work properly in protected mode 
because a selector's value doesn't corre- 
i spond to a segment's address. For exam- 
ple, consider the real-mode program in 
listing 2, which writes to the IBM PC's 
color display memory. In real mode, 
0B800 hexadecimal is the segment ad- 
dress of the color card's memory. In pro- 
tected mode, however, a selector with 
value 0B800h refers to the GDT descrip- 
tor located at index equals 1700h. It's un- 
likely that there's a valid descriptor at 
that large an index, but even if there is, 
it's improbable that it's the right one. At 
best, the program won't display a charac- 
ter. At worst, it will incur a protection ex- 
ception during the segment-load instruc- 
tion, because the selector refers to an 
invalid descriptor. 

Well-behaved programs avoid writing 
to fixed memory locations and use oper- 
ating-system I/O services instead. You 
could upgrade listing 2 more easily if it 
used the DOS display-character function 
call instead of writing directly to the color 
card. If you need to write directly to 
memory for performance reasons, you 
should restrict such accesses to a single 
procedure. Then you need to modify only 
one procedure, not your mainline code. 

Another problem related to poor be- 
havior arises if a program performs arith- 
metic on segment values. For example, a 
real-mode program with two contiguous 
64K-byte segments might add lOOOh to 
the segment address of the first in order 
to point to the second. Or, a program 
might calculate its load size by subtract- 
ing the segment address of the first seg- 
ment from that of the second. In either 
case, the program would have problems 
in protected mode, because a selector 
doesn't correspond to the segment's base 
address. A protected-mode program 
should not rely on segment arithmetic. 

In protected mode, the access-rights 
byte has enough bits to delineate two 
types of code segments: executable and 
readable, and execute only. However, 



126 Inside the IBM PCs • B Y T E 1987 Extra Edition 



286/386 PROTECTED-MODE PROGRAMMING 



there is no way to make code segments 
writable. Thus, a protected-mode pro- 
gram can never use a CS segment over- 
ride as an instruction's destination. 

For example, in both of the MOV in- 
structions in listing 3, the program ac- 
cesses a variable, varl, inside the code 
segment. MOV AL, varl works fine as 
long as the code segment's descriptor 
says that the segment is readable. How- 
ever, MOV varl j AL fails regardless of the 
descriptor type, because code segments 
are never writable in protected mode. To 
avoid this problem, you should define all 
variables within a data or stack segment. 

The interrupt-vector table is the source 
of another potential conversion problem. 
In real mode, the operating system stores 
the addresses of interrupt-service rou- 
tines in the interrupt-vector table located 
at memory address 0000. In protected 
mode, the interrupt-descriptor table has a 
different format and doesn't have to re- 
side at any specific address. Therefore, 
programs that directly manipulate the 
real-mode interrupt-vector table won't 
work in protected mode. You can avoid 
this problem by using DOS functions 25h 
and 35h to read and write entries in the 
interrupt table. 

Sensitive and Privileged 

To make a system as reliable as possible, 
the operating system can prevent you 
from executing so-called sensitive in- 
structions (see table 1) while in protected 
mode. If you use these instructions incor- 
rectly, your program can crash the sys- 
tem. For example, if you issued an invalid 
OUT instruction, you could turn off the 
PC's direct-memory-access controller 
and cause a memory parity error. 

The operating system controls who can 
execute sensitive instructions via the I/O 
privilege level (IOPL) bits in the pro- 
gram's flags. (Each program has its own 
set of flags.) To be allowed to execute 
sensitive instructions, the current code 
segment's privilege level, or CPL, must 
be higher (i.e., numerically lower) than 
the IOPL; otherwise, the processor will 
generate an exception (see figure 3). 

Existing real-mode programs that use 
sensitive instructions may fault in pro- 
tected mode, depending on how the oper- 
ating system assigns CPL and IOPL. To 
avoid such faults, you can compare these 
values programmatically to determine 
whether a particular program can execute 
sensitive instructions. The procedure 
check_sensitive in listing 4 performs 
this comparison. 

Only the operating system or other 
highly privileged programs with a CPL 
equal to can execute privileged instruc- 
tions; they would pose too great a risk in 
applications programs. Table 2 contains 



Listing 3: Accessing code-segment variables. 




CODE SEGMENT 






ASSUME CS: CODE 






varl DB1 


; code segment variable 




start: 






MOV AL, varl 


jworks if execute and read access 


rights 


MOV varl, AL 


; never works, can't write 




CODE ENDS 







Table 1: Protected-mode sensitive instructions. 


IN 


Read a port 


OUT 


Write to a port 


INS 


Read a string from a port 


OUTS 


Write a string to a port 


CLI 


Disable interrupts 


STI 


Enable interrupts 





15 


1 


1 
Flags 


5 


13 12 







CS 




CPL 




IOPL 





















Figure 3: The CPL is located in the last two bits of the code segment 's selector. The 
IOPL is found in the program 's flags. You can modify the IOPL only when CPL=0; 
you can execute sensitive instructions only if CPL < = IOPL. 



Listing 4: This routine determines whether you can execute sensitive 
instructions. It takes no inputs. After execution, the carry flag will be if you 
can use sensitive instructions at the segment's current privilege level, or I if 
their use will generate an exception. 



check_s 


ensitive 


PROC 








PUBLIC check_sensitive 


PUSH 


AX 






PUSH 


BX 






PUSHF 






;save flags (IOPL) on stack 


POP 


AX 




;copy flags to AX 


AND 


AXJ000H 




jmaskallbut IOPL 


SHR 


AX, 12 




; right- justify IOPL 


MOV 


BX,CS 




; CPL resides in CS 


AND 


BX,3 




jmask all but CPL 


CMP 


BX,AX 




; compare CPL and IOPL 


JA 


no_sensitive 


; jump if CPL > IOPL 


CLC 






; sensitive instructions OK 


JMP 


SHORT cs_ 


.exit 




no_sens 


itive: 






STC 






; exception occurs on sensit 


cs_exit 








POP 


BX 






POP 


AX 






RET 








check_sensitive 


ENDP 





a list of privileged instructions. Of these, 
only the HLT instruction exists in real 
mode, so it's the only one you have to 
look for; you won't have upgrade prob- 



lems with any of the others. New pro- 
tected-mode programs can use the proce- 
dure check__privileged in listing 5 to 

continued 



BYTE 1987 Extra Edition • Inside the IBM PCs 127 



Lircle 1 75 on Reader Service Card 



AT LAST: Professional 

Typesetting Capability 

For PC Users 

With PC TfcX™ - - the best-selling full 
implementation of Professor Don Knuth's 
revolutionary typesetting program TgX. 

FINEST Typeset Quality Printing From: 

dot matrix laser phototypesetter 



( oil 

C&21 



Va 



ml 



din \ 
02n 



r 

J ~c 



da: 



WIDEST Range Of Output Device Drivers: 

• Epson FX, LQ • HP LaserJet* 

• Toshiba • Apple LaserWriter 

• Corona LP-300* • APS-5 phototypesetter 

• Screen preview, with EGA or Hercules card 

MOST COMPLETE Product Offering: 

PC T^X (not copy protected) includes the following: 

• Our specially written PC TfjjX Manual, which en- 
ables you to start using l^X right away 

• Custom "macro packages" that provide formats 
for letters, manuals, technical documents, etc. 

• The LM^jX document preparation system, a full* 
featured macro package for preparing articles, 
books, reports, etc., and iAT^jX User's Manual. 

• AmS-T$£, developed by the Amer. Math. Society 
for professional mathematical typesetting. 

Site licenses, volume discounts, and interfaces to 
PC Paintbrush, PC Palette, FancyFont and Fontrix 
are also available. 

PRICED FROM ONLY $249.00! 

(Printer drivers and interfaces additional.) 



Laser printer, 
fonts & software 
from $2995.00 



For IBM PC/XT, AT or compatible, DOS 2.0 or higher, and 
512K RAM. Hard disk required for printer drivers and fonts. 
*HP LaserJet and Corona require additional interface boards. 

For more information call or write: 

Personal T^X, Inc. 

12 Madrona Avenue, Mill Valley, CA 94941 (415) 388-8853 

This ad, with space for the photograph, produced by PC TfeX. 

Typeset on the Epson FX80, the Corona LP-300 laser printer, 

and the Autologic APS-5 phototypesetter. 

TeX is a trademark of the American Mathematical Society. Manufac- 
turers' product names are trademarks of individual manufacturers. 




286/386 PROTECTED-MODE PROGRAMMING 



Table 2: Protected-mode privileged instructions. 

HLT Halt the processor 

LGDT Load the GDT register 

LIDT Load the interrupt-descriptor-table register 

LLDT Load the LDT register 

CLTS Clear the task-switched flag 

LMSW Load the MSW 

LTR Load the task register 

The following privileged instructions exist only on the 80386: 
MOV to/from control registers 
MOV to/from test registers 
MOV to/from debug registers 



Listing 5: This routine determines whether you can 
execute privileged instructions. It takes no input. After 
execution, the carry flag will be if you can use 
privileged instructions at the segment's current privilege 
level, or 1 if their use will generate an exception. 



check_privileged PR0C 

PUBLIC check_privileged 
AX 

AX,CS j CPL res ides in CS 

AX, 3 ;maskallbut CPL 

no_privileged ; j ump if CPL <> 

; privileged instructions OK 



PUSH 

MOV 

AND 

JNZ 

CLC 

JMP 



SHORT cp_exit 
no_privileged: 

STC 
cp_exit: 

POP AX 

RET 
check_privileged ENDP 



; exception occurs on privileged 



Listing 6: Routine to determine if an offset is usable 
within a segment. The selector for the segment goes in 
BX, and the offset goes in CX. After execution, the carry 
flag will be if the selector '.offset is fine, or 1 if its use 
will generate an exception. 



check. 


segment_limit PR0C 






PUBLIC check_segment_limit 


PUSH 


DX 




LSL 


DX,BX 


; obtain the segment ' s limit 


JNZ 


except ion_r etur n 


; exit if bad selector 


CMP 


CX,DX 


; compare offset and limit 


JA 


exception_return 


; j ump if offset above limit 


CLC 




; selector: offset OK 


JMP 


SHORT csl_exit 


j return to caller 


exception_return : 




STC 




;bad selector or offset 


csl_exit: 




POP 


DX 




RET 






check. 


segment_limit ENDP 





128 Inside the IBM PCs • BYTE 1987 Extra Edition 



SAVE $20 




United States □ One Year $22 □ 2 Years $40 
Canada/Mexico D One Year U.S. $25 

Europe D $69 (air delivery), U.S. Funds enclosed 

D $37 (surface mail). U.S, Funds enclosed 

□ BILL ME. If I'm not completely satisfied with my first copy, 
I'll simply write "cancel" across your invoice, mail it back, and 
my subscription will be cancelled. 

□ Check Enclosed □ Bill VISA D Bill Mastercard 
Please allow 6-8 weeks for processing your subscription. 



Name . 



47ITNU-3 



Address 

City/State/Zip 
Acct.# 



Expires. 



Signature 



m 




United States D One Year $22 D 2 Years $40 
Canada/Mexico D One Year U.S. $25 

Europe □ $69 (air delivery), U.S. Funds enclosed 

D $37 (surface mail), U.S. Funds enclosed 

□ BILL ME. If I'm not completely satisfied with my first copy, 
I'll simply write "cancel" across your invoice, mail it back, and 
my subscription will be cancelled. 

□ Check Enclosed □ Bill VISA D Bill Mastercard 
Please allow 6-8 weeks for processing your subscription. 



Name . 



471TNU-3 



Address 

City/State/Zip 
Acct.* 



Expires— 



Signature 



hi 



BUSINESS REPLY MAIL 

FIRST CLASS MAIL PERMIT NO. 201 PISCATAWAY, NJ 



POSTAGE WILL BE PAID BY ADDRESSEE 



BITE 



Subscription Dept. 

P.O. Box 6807 

Piscataway, NJ 08855-9940 



NO POSTAGE 

NECESSARY 

IF MAILED 

IN THE 

UNITED STATES 



BUSINESS REPLY MAIL 

FIRST CLASS MAIL PERMIT NO. 201 PISCATAWAY, NJ 



POSTAGE WILL BE PAID BY ADDRESSEE 



BUTE 



Subscription Dept. 

P.O. Box 6807 

Piscataway, NJ 08855-9940 



NO POSTAGE 

NECESSARY 

IF MAILED 

IN THE 

UNITED STATES 



286/386 PROTECTED- 
MODE PROGRAMMING 



determine whether they can execute priv- 
ileged instructions. 

Living Within Limits 

In real-mode programs, you can freely 
use offsets greater than the size of a seg- 
ment. For example, if two small segments 
are contiguous, you can set a segment 
register to the first and use a large offset 
to access the second. However, if you try 
to access beyond a segment's limit in pro- 
tected mode, the processor will generate 
an exception interrupt. To prevent these 
faults, a program— particularly a proce- 
dure to which an offset is passed— can use 
the load segment limit (LSL) protected- 
mode instruction to verify that the offset 
lies within the segment's limit. 

LSL requires two operands: a destina- 
tion 16-bit register and a source selector 
in a register or memory location. The in- 
struction verifies that the source selector 
is valid; if it is not, LSL clears the zero 
flag. A selector might be invalid for a va- 
riety of reasons, the most common of 
which is a privilege-level violation. If the 
selector is valid, the processor copies the 
limit from the segment's descriptor into 
the destination register. The check_seg- 
ment_limit procedure in listing 6 uses 
LSL to determine whether a particular se- 
lectonoffset address is valid. [Editor's 
note: Listings 4 through 6 are available 
as PMODEASM in Microsoft MASM 4. 
assembly language source code in print, 
on disk, and on BIX. See the card fol- 
lowing page 208. This file is also avail- 
able on BYTEnet. Seepage 4. ] 

Time to Pay the Piper 

Protected-mode programs are more ro- 
bust and reliable than real-mode pro- 
grams and can take advantage of larger 
memory addressability, but some prob- 
lem areas exist in converting programs 
from real mode to protected mode. These 
areas are contained in the selector and the 
segment descriptor. The privilege level in 
the selector controls the use of sensitive 
and privileged instructions. The protec- 
tion afforded by access rights, making 
sure that you don't write to a segment if 
you're not supposed to, or even read it 
unless you have the right to, can cause 
problems where you least expect them. 
The use of limits ensures that you are not 
jumping unintentionally (or intentional- 
ly) into another segment with offsets that 
exceed the size of the current segment. 

Finally, one subject comes up again 
and again. It is what anyone and everyone 
with anything to say about programming 
will tell you: Write well-behaved pro- 
grams. While performance consider- 
ations in the past may have dictated that 
you not always follow that advice, the 
time has come to pay the piper. ■ 




uperSoft announces Service Diagnostics: The KIT. All the 

software, alignment diskettes, parallel/serial wrap-around plugs 
I and extensive, professional documentation to provide the most 
comprehensive testing available for IBM PCs, XTs, ATs and all compatibles under 
DOS or Stand Alone. No other diagnostics offers such in-depth testing on as many 
different types of equipment by isolating problems to the board and chip level. 

For over eight years, major manufacturers have been relying on SuperSoft's 
diagnostics software to help them and their customers repair microcomputers. End 
users have been relying on SuperSoft's Diagnostics II for the most thorough hardware 
error isolation available. Now versions of Service Diagnostics are available to save 
everyone (including every serious repair technician) time, money, and headaches in 
fixing their computers, even non-IBM equipment. 



All CPUs & Numeric Co-processors 
System Expansion & Extended Memory 
Parallel & Serial Ports 
Mono, CGA, Hercules & EGA Adapters 
All Keyboards & the 8042 Controller 



All Color Graphics & Monochrome Monitors 
Floppy, Fixed & Non-standard Disk Drives 
Standard & Non-standard Printers 
System Board: DMA, Timers, Interrupt, 
Real-time Clock & CMOS config. RAM 



Join the ranks of XEROX, NCR, CDC, SONY and PRIME who have bundled 
SuperSoft diagnostics with their microcomputers at no risk because of our 30 day 
money back guarantee. 



Service Diagnostics for PC, PC/XT, and compatibles only 
Alignment Diskette for PC, PC/XT and compatibles (48 tpi drives) 
Wrap-around Plug for PC, PC/XT and compatibles (parallel and serial) 
Service Diagnostics for AT and compatibles only 
Alignment Diskette for AT and compatibles (96 tpi drives) 
Wrap-around Plug for AT (serial) 
Service Diagnostics: The KIT 
(includes all of the above— save $30) 

Service Diagnostics for all other CPUs (386, V20, V30, Harris, etc.) 
Diagnostics II is the solution to the service problems of users 

of a//CP/M-80, CP/M-86 and MS-DOS computers 
Alignment Diskette for PS/2 and compatibles (3.5 inch) 



$195 
$40 
$30 

$195 
$50 
$15 

$495 

$195 

$125 
$40 



To order, call 800-762-6629 (in Illinois 21 7-359-21 1 2), fax 21 7-398-5923, or 
write SuperSoft. (Please specify DOS or Stand Alone.) 

SuperSrft 

FIRST IN SOFTWARE TECHNOLOGY P.O.Box1628 Champaign, IL 61820 (217)359-2112 Telex 270365 

SUPERSOFT is a registered trademark of SuperSoft, Inc.; CDC of Control Data Corp.; Dysan of Dysan Corp.; IBM PC, AT & XT of 
International Business Machines Corp.; MS-DOS of Microsoft Corp.; NEC of NEC Information Systems, Inc., PRIME of PRIME INC.; 
Sony o f Sony Corp.; and Xerox o f Xerox Corp. CPM-80 & CP/M-86 are the trademarks o f Digital Research. Inc. 



Circle 219 on Reader Service Card 



B Y T E 1 987 Extra Edition • Inside the IBM PCs 129 




Introducing the VGA card 



It's VEGA VGA T , M just what you'd expect from the com- 
pany that brought you the award-winning VEGA Deluxe. 

This short card gives you VGA compatibility without 
having to buy a new IBM PS/2 machine. 

And at the same time, it gives you capabilities that 
even IBM can't match. 

To begin with, VEGA VGA provides a graphic reso- 
lution of 640 x 480. And gives you 16 spectacular 
on-screen colors from a palette of 64, with a variable 
frequency monitor. 

Or if you're using an analog monitor, you can select 



256 simultaneous colors with 
320 x 200 resolution from a palette 
of 262,144 or 16 colors with a 
resolution of 640x480. 

But. this isn'tjust a BIOS level 
VGA card. VEGA VGA offers 
complete software compatibility for all VGA programs. 
And that's not all. 

VEGA VGA is backwards compatible, working 
with your favorite software programs for EGA, CGA, 
MDA and Hercules. Guaranteed. 




The following arv registered and unregistered trademarks ofdie companies listed; Video Seven, VEGAVfiAA EGA Deluxe. Video Seven Inc.; IBM, PS 2. Iniernalional Business Machines Corporal ion: 
Hercules, Hercules Computer Technology, Inc.; Analog monitor needed to support 2B2, 144 palette and 2.T> colors. Variable frequency monitor required for greater than (J40 x 350 resolution. 






that'll knock your socks off. 



And due to our innovative design, VEGA VGA sup- 
ports both analog and digital monitors. Which means 
it will work with the monitor you're currently using. 

And it works up to 400% faster than an EGA card. 

VEGA VGA also incorporates surface mount tech- 
nology with our custom IC chips— for less heat, more 
reliability and durability. 

VEGA VGA provides drivers for an additional high 
resolution of 800x600. 

And finally, VEGA VGA is the only card that comes 
with a full three year warranty. 

See Software Comuatibilitv Guarantee for full details. Video Seven reserves the right to change 
specifications without notice. 



All this for a fraction of the price of a new IBM PS/2. 
Plus a new pair of socks. 

For more information, visit your nearest Video 
Seven dealer. 

Video Seven Inc., 46335 Landing Parkway 3 FYemont, 
CA 94538. 1-800-238-0101 (in California, 1-800-962-5700.) 



Ws 



VIDEOWSEVEN 

We make a clear difference 

Circle 238 on Reader Service Card 




Four- and Eight-Channel 
Statistical Multiplexers 
from Multi-Tech Systems: 

When it has to 
be as simple 
as it is smart 



• There are a lot of good reasons to buy a pair of 
statistical multiplexers. Reduced line expenses, 
network security and the elimination of transmission 
errors are the three main ones. 

• Unfortunately, most multiplexers come with a big 
reason not to buy them: They're nearly impossible for 
mere mortals to install and understand. In other 
words, they're just not worth the trouble. 

• With that in mind,we'd like to introduce you to the 
new MultiMux| M from Multi-Tech Systems. The biggest 
difference between the MultiMux and other muxes is 
thatyou can easily install a pair of them yourself, 
without the excessive time, expense and frustration 
you've avoided in the past. 



• You may know us best for our Multi Modem ™ line of 
1 200 and 2400 bps dial-up modems. The same 
simple approach we use for our modems is now used 
for our MultiMux. We even use similar "AT" type 
commands. 

• The MultiMux is offered in four- and eight-channel 
versions, with or without an integral 9600 bps V29 
modem. Instead of paying for up to eight dial-up lines 
for your asynch terminals, PCs or printers, you can 
use a pair of MultiMuxes to combine them all into a 
single leased line, for much less money. 

• Convinced? If not, consider that the MultiMux 

is completely command driven, with a supervisory 
port, help menus, downline loading, full LED display, 
statistical reporting, and an integral 1200 bps dial-up 
modem for remote configurations and diagnostics. 
Also, consider that the MultiMux (like all of our prod- 
ucts) is manufactured and supported by us in Minne- 
sota, and that we've been doing so since 1970. Finally, 
consider our price. You'll find that to be a pleasant 
surprise too. 

• Please call us toll-free at 1-800-328-9717, for 
additional information ... get a multiplexer that's as 
simple as it is smart! 

MultiMux, MultiModem and the Multi-Tech Systems logo 
are trademarks of Multi-Tech Systems, Inc. 

MultiTecr # 

Systems ^gr 

The right answer every time. 



Circle 144 on Reader Service Card 
(Dealers: 145) 



Multi-Tech Systems, Inc. • 82 Second Avenue S.E. • New Brighton, Minnesota 55112 U.S.A. 
1 -800-328-971 7 • 1-61 2-631-3550 • FAX 61 2-631-3575 • TWX 91 0-563-361 (Domestic) • Telex 4998372 MLTTC (International) 



anne! Five Channel Six Channel Seven Cnannel Eigh! 

»• 99 •• 

5 6 8 

annel One Channel Two Channel Three Channel Fo^r 



BUFFER 

FULLNESS 

LEVEL. 



F L R T 

L i Ef E 

O M M S 

C K T 

T T 

R A E 

L L M 

A D O 



Multi Tec hfij 

Systems ^fi? 



C R W D 
3 V M N E 



ee oooooooo 



MultiMux 



Statistical Multiplexer 



INSIDE THE IBM PCs 



Solving the RT's network problem 



The IBM RT 
Gets Connected 



Jason Levitt 



IBM's recent foray into the 
technical workstation market 
has left little doubt that the 
Unix operating system is the 
incontestable standard in that 
field. The IBM RT PC, IBM's 
initial entry in this market, 
simply joined a host of other 
computers whose companies 
were already in a flurry of de- 
velopment to equip their latest 
workstations with the fastest 
CPU, memory, and network- 
ing options available. The ini- 
tial RT offering, seen in this 
light, was interesting, yet inef- 
fectual. [Editor's note: For a 
description of the IBMRTPC, 
see Richard O. Simpson 's ar- 
ticle 'The IBM RT Personal 
Computer" in BYTE's Inside 
the IBM PCs, Fall 1986.] 

The RT was a relatively fast 
(about 2 million instructions 
per second) machine using a 
proprietary reduced instruc- 
tion set computer architec- 
ture, but with poor floating- 
point performance and no 
distributed processing capa- 
bilities except for limited PC 
Network support and the pre- 
historic Unix standby, uucp 
(Unix-to-Unix copy) . 

The latest IBM offerings, 
however, place IBM systems 
competitively against such es- 
tablished distributed systems as Apollo's 
Domain system and Sun's Network File 
System (NFS) as a potentially heteroge- 
neous distributed computing environ- 
ment for technical workstations. The key 
to this new computing environment is an 
extended version of AIX, IBM's port of 
Unix System V for the RT, incorporating 
a set of facilities called Distributed Ser- 
vices (DS). DS lets a group of networked 
RTs share files and directories. It also lets 
processes on different machines commu- 




nicate using a form of distributed inter- 
process communication. 

Distributed File System 

A distributed file system should let a user 
on one machine (the client) have access to 
files and directories on another machine 
(the server). DS provides this service to 
the user through a modified Unix mount 
command. The normal command allows 
only the mounting of file systems; the DS 
version, in addition, accepts mount com- 



binations of files or directo- 
ries that are local and remote. 
For example, you can mount a 
remote directory so that it ap- 
pears as a local directory on 
your system. 

Unlike NFS, where the sys- 
tem administrator must ex- 
plicitly mark a file or direc- 
tory before a client can mount 
it, DS allows the mounting of 
any file or directory that a cli- 
ent can name locally or on a 
server, provided the client sat- 
isfies the authorization crite- 
ria listed in table 1 . The ad- 
vantage of such casual 
mounting is increased user in- 
teraction across the network 
and close adherence to Unix 
system semantics. 

Figure 1 shows a four-node 
RT network before and after 
two users — clienta and 
clientb— have issued the 
series of remote mount com- 
mands shown in table 2. The 
clients share the source code 
tree from src_mach and the 
file /etc/passwd. Access to 
these remote files and directo- 
ries is transparent to users and 
programmers. Thus, users on 
clienta and clientb can ac- 
cess files in the source tree 
without realizing that the files 
exist on another machine. 
System calls such as write, read, and 
open perform as they do on local files. 
The exceptions to this are that DS does 
not let a user reference a remote device 
driver— hence, you cannot directly use 
printers or terminals on a remote ma- 

continued 

Jason Levitt is a Unix consultant with a 
B. S. in computer science from Indiana 
University. He can be reached at P. O. 
Box 49860, Austin, TX 78765. 



Illustration: Claudia Tantillo © 1987 



BYTE 1987 Extra Edition • Inside the IBM PCs 133 



THE IBM RT GETS CONNECTED 



Table 1: Mount authorization criteria in Distributed Services. 

1 . Superuser can issue any mount. 

2. Members of system group can issue local device mounts defined in /etc/file 
systems. 

3. Other users/groups are allowed to perform directory/file (but not device) mounts if 
these processes have search permission for the requested directory/file, own the 
mounted-upon object, and have write permission in the parent directory of that 
object. 



Table 2: Mounting remote files and directories with the mount command. See 
figure 1. 

Mounts issued by user clienta : 

mount -n src_mach /etc/passwd/etc/passwd 
mount -nsrc_mach/ src /mysrc/ machsrc 

Mounts issued by user clientb: 

mount -n src_mach /etc/passwd/etc/passwd 
mount -n src_rnach / src / updates 



chine— nor does it allow the use of shared 
memory on a remote machine with the 
shmat system call. 

Vnodes 

The ability to mount remote files makes it 
possible for files from several different 
machines to coexist on the same ma- 
chine; you can even mount several copies 
of the same file at various points on the 
same machine. The traditional view of a 
Unix file as represented by an i-node 
structure is not sufficient for remote 
representation. 

DS uses the NFS concept of Virtual 
File Systems (VFS) and vnodes to repre- 
sent files and directories. As figure 2 il- 
lustrates, the VFS and vnodes place a 
layer between the Unix system calls and 
the i-node structure of the Unix file sys- 
tem. Each time a remote mount occurs, a 
new VFS structure is created, with the 
mounted file or directory becoming the 
root of the VFS. Each file and directory 
in the new VFS is represented by a vnode 
structure. The information contained in 



SDLC 
link over 
phone 
lines to 
Off_Site 
Machine 



* 



SDLC 
link over 
phone 
lines to' 
OfLSite 
Machine 



Ethernet 

T 



1 



"T" 
etc 



"1 1 

bin src 



r 

passwd 



1 I - 

■ • • cmds 



r 



etc 



~l 1 

bin mysrc 



etc 



bin updates 



r 



i 



passwd • • • project machsrc 



OS 



r 

passwd 



src mach 



clienta 



BEFORE MOUNTS 



clientb 



¥ 



Ethernet 



1 



etc 



"T" 
bin 



"I 
src 



I 1 

passwd 



etc 



n — i 

bin mysrc 



"I" 
etc 



"I 1 

bin updates 



1 I 1 

passwd • • • project machsrc 



cmds 



OS 



r 

passwd 



cmds 



1 

OS 



cmds 



OS 



src mach 



clienta 



clientb 



AFTER MOUNTS 



Figure 1: A four-machine RT PC network before and after users of the network have issued commands shown in table 2. 
The highlighted lines in the second half of the figure indicate paths that have been changed or added due to the commands. 



134 Inside the IBM PCs • BYTE 1987 Extra Edition 



THE IBM RT GETS CONNECTED 



the VFS structure describes the file sys- 
tem's characteristics. Likewise, the 
vnode structure describes the type of en- 
tity it is associated with. By accessing 
files via these higher-level data struc- 
tures, mounting a foreign file system- 
such as, a DOS file system— is much sim- 
pler because the kernel needn't be aware 
of that file system's structure. 

File Access 

With several machines sharing a group of 
files, it is sometimes the case that files 
are accessed by users on different ma- 
chines, with the additional hazard that the 
network may fail between two or more 
machines. Suppose that, in our sample 
network, clienta has finished editing a 
file, /mysrc/machsrc/cmds/cmp.c, lo- 
cated on src_mach, and the editor is writ- 
ing the changes back to the file. If the net- 
work connection fails during the write 
system call, the client receives an error 
return from the write call in the form of 
an error message from the editor, and the 
server (src_mach) will close the file, as 
well as perform other cleanup operations 
so that the file's contents reflect the last 
update the system was able to perform. 
Because the server maintains knowledge 
about the file's state (i.e., who accessed 
it last, was it closed improperly, and so 
on), DS is considered "stateful" in this 
aspect of its implementation. In contrast, 
NFS is stateless because servers do not 
store any state information about remote 
files. 

DS maintains directory caches on cli- 
ent and server so that, in the above exam- 
ple, network access need not occur each 
time the directories in the path /mysrc/ 
machsrc/cmds/cmp . c are resolved. 

DS also supports both read ahead and 
write behind by maintaining client and 
server data caches. Data-caching on both 
client and server optimizes reading and 
writing to and from files across the net- 
work, since caching effects can occur si- 
multaneously on two machines. Since the 
server is not aware of what files and di- 
rectories clients have mounted from it, 
DS is stateless with respect to remote 
mounts. 

The advantage of statefulness is its 
ability to adhere closely to Unix file-ac- 
cess semantics, particularly in areas such 
as file locking. However, this also makes 
it harder to support non-Unix file sys- 
tems. DS allows remote read and write 
locks in both enforced and advisory mode. 

Network Support 

DS uses a finely tuned version of SNA 
LU6.2 as its network protocol. Because 
of SNA LU6.2's wide vendor support 
and its importance as a connectability 
medium in the IBM architecture world, it 



has emerged as one of the standard net- 
working mechanisms and is a likely 
choice for integrating heterogeneous 
distributed systems. SNA implements a 
virtual circuit between two machines by 
providing the transport layer with an 
error-free channel and ensuring ordered 
delivery of packets. The transport layer 
can be Ethernet or synchronous data-link 
control; although SDLC links are too 
slow for most purposes, they are useful 
for using DS across existing media, such 
as phone lines. In the sample network of 
figure 1 , src_mach runs DS over a leased 
phone line with the machine Of f _Site to 
distribute its source code. 

A Remote Procedure Call (RPC) layer 
insulates DS from the network code. IBM 
calls the RPC layer a virtual circuit inter- 
face (VCI), probably because NFS calls 
its layer RPC (see figure 2). The VCI 
makes it easier to port DS to a different 
set of network protocols. 

Remote Process Support 

Unix System V message queues let pro- 
cesses communicate with each other by 
reading and writing data to and from lists 
(queues) of arbitrary data structures 
(messages). These lists of data are similar 
to files— they can be created, read, and 
written— except they reside in memory 
instead of on disk and are consequently 



much faster. Each message queue is in- 
dexed with a queue id (qid) and key that 
uniquely identifies it. DS extends this 
idea to let processes on one machine 
communicate with processes on other 
machines via message queues. 

Each machine maintains a message 
queue translation table to accomplish the 
mapping of local message queues to 
queues on other machines. Table 3 illus- 
trates a translation table that might exist 
on src_mach. Src_jnach has two real DS 
message queues, called clientaq and 
clientbq, that map into surrogate or 
stub queues on clienta and clientb. 
You can think of the stub queues as re- 
mote files; the queues actually exist on 
src_mach, but the user on clienta or 
clientb can use the stub queue as if it 
were a local message queue. 

Also, a TCP/IP (Transmission Control 
Protocol/Internet Protocol) implementa- 
tion is available under DS that operates 
concurrently on Ethernet with SNA 
LU6.2, and this TCP/IP software makes 
possible another popular form of inter- 
process communications: sockets. 

Security 

DS defines a set of network uids and 
gids that are translated independently 
from machine to machine through the use 

continued 



Table 3: An IPC message queue translation table for machine src_mach. 
Queue name Local key Remote key Remote ID/nickname 



clientaq 
clientbq 



Mlllll 
\777776 



\777777 
i777776 



clienta 
clientb 



Unix system calls 

Unix file system pS 

I (i-nodes) 



Unix system calls 

i 



Disk 




1 



Virtual circuit 
interface 



\ 



SNALU6.2/SDLC 



I 



DS 



Virtual circuit 
interface 



SNALU6.2/SDLC 



* VFSA/node 



Unix file system 
I (i-nodes) 



Disk 




t 



Ethernet 



Client side 



Server side 



Figure 2: The structure of the Distributed Services file system. 



BYTE 1987 Extra Edition • Inside the IBM PCs 135 



Circle 136 on Reader Service Card 



OUTSTANDING 
SOFTWARE 

For IBM PC's and Compatibles 



THE IBM RT GETS CONNECTED 



Small Quantities 



SHIPPED WITHIN 24 HOURS! 
Satisfaction Guaranteed or Money Back! 



DISK | 
For Ten or More 



G BUSINESS 1— EZ-FORMS business form 
generation, completion and printing program. 

CAD 3— The PC-Flow 1 .0 computer aided flow- 
chart generation program. Color graphics required. 

\s] COMM 4a,b,c J d J e— (5 disks) Join the world of 
sysopswith RBBS Bulletin Board System 14.1D. 

\2\ DATABASE 1a,b— (2 disks) File Express 3.8 
menu driven general purpose database manager. 

□ EDUCATION 1— Interactive DOS tutorial for new 
PC users. Makes learning DOS painless. 

\2] FINANCE 1a,b-(2 disks) PC Accountant 2.0 
personal bookkeeping and finance management. 

1 I GAMES 1 — 3-D Pacman, Kong, Spacewar, Janit- 

Joe, futuristic Flightmare and more. Color required. 

□ GAMES 2— Qubert, Pango, Centipede, dun- 
geons and dragons style Zoarre, etc. Color req. 

l"] GAMES 3— Blackjack with customizable rules, 
Armchair Quarterback (you call plays), and more. 

□ GAMES 4— Star Trek, the Castle adventure £3 
game, and the original Colossal Caves Adventure, o 

~^\ GAMES 5— The Hack adventure game from the § 
universities. Like Rogue, only much richer. >~ 

□ GAMES 6— Pinball, Othello, Dragons, Sopwith 
(fly a Sopwith Camel) and more. Color required. 

[2~| INFO 1a,b— (2 disks) Cooking recipes database 
with keyword/ingredient retrieval. Add your own. 

[2] MUSIC 2a,b— (2 disks) PianoMan 3.0 polyphonic 
music recording and playback program. 

□ ORGANIZER 1— DeskTeam, a Sidekick clone, 
and the Judy personal calendar program. 

□ PRINTER 1— Resident print control and font 
utility, intelligent spooler, banner maker, and more. 

□ SIMULATION 1— Maze making program, MIT's 
Life simulation, starfields, etc, Color graphics req. 

I I UTILITIES 1 — A collection of invaluable general 
purpose DOS utilities. An absolute must for all. 

□ UTILITIES 2— More invaluable DOS utilities in- 
cluding screen burnout, ram disk, and more. 

I | UTILITIES 3— A comprehensive set of debugging 
and diagnostic utilities for monitoring your computer. 



NEW RELEASES/UPDA TES 



G BUSINESS 2— Expressgraph business graphics. 
Chart your data and find trends. Color graphics req. 

[2] CAD 1a,b— (2 disks) Fingerpaint 1 .2 advanced 
painting and Altamira object oriented design. Color. 

\2\ CAD 2a,b— (2 disks) DanCad3d, an advanced 
2D/3D drafting program w/animation. 640K, color. 

\2\ COMM 2a,b— (2 disks) Procomm 2.42, an excel- 
lent modem program with terminal emulation. 

□ EDUCATION 3— PC-Fastype 1 .20 typing tutor, 
ideal for beginners and advanced students alike. 

\g\ FINANCES 3a,b— (2 disks) Express Calc 3.12, 
a powerful and user friendly spreadsheet program. 

□ GAMES 8— Striker helicopter attack and Risk, the 
game of world domination. Color required. 

^j GAMES 12 — Backgammon (play the computer) 
and Wheel of Fortune based on the gameshow. 

I | GRAPHICS 1 — Record and play back screen im- 
ages! Excellent for demo, etc. Color required. 

[3] GRAPHICS 2a,b,c— (3 disks) An excellent 3-D 
surface modelling and shading program. Color. 

\2\ INFO 2a,b— (2 disks) Zip-Phone, national 
areacode/prefix to zip-code cross reference. 

[2] LANGUAGE 3a,b-(2 disks) The A86 3.09 
macro assembler and debugger for 8088/86/286s. 

\2\ SHELL 4a,b— (2 disks) Automenu and HDM II 
4.04 hard disk prog, for custom full-screen menus. 

□ UTILITIES 5— Hard disk utilities for verifying, for- 
matting, parking and optimizing your disk drives. 

UTILITIES 6— Advanced utilities including 
Mark/Release (remove resident progs w/o reboot!) 

1 | UTILITIES 7 — More advanced utilities including 

Masterkey (undeletes files from hard disks). 

H] WORD 1a,b— (2 disks) PC Write 2.71, a powerful 
word processing system w/spell checker, laser supt. 
Most software listed is shareware or user-supported. 



3.5" format add $1/disk. 125 paae directory, add $2. 



MicroCom Systems 
3673 Enochs Street 
Santa Clara, CA 
95051 



Cost of items 

Shipping 

CA res tax_ 
Total encl._ 



$3.00 



Table 4: A partial 


uid/gid translation table for (a) c 


lienta and (b) 


src_jnach. 










> 


(a) 












User/Group 




Local 


Network ID 


Originating node 


name 


U/G 


ID 


Outbound 


Inbound 


name/nickname 


root 


U 





100 


200 


src_mach 


system 


G 





300 


310 


src_mach 


staff 


G 


25 


111 


622 


src_mach 


larry 


U 


23 


400 


410 


src_mach 


rudy 


u 


22 


400 


411 


src_mach 


clay 


u 


31 


650. 


660 


src_mach 


guest 


u 


8 


1000 


* 


* 


(b) 








..' 




User/Group 




Local 


Network ID 


Originating node 


name 


U/G 


ID 


Outbound 


Inbound 


name/nickname 


root 


u 





200 


100 


clienta 


system 


G 





310 


300 


clienta 


clay 


U 


31 


660 


650 


clienta 


bin 


G 


2 


600 


111 


* 


src 


U 


20 


3000 


400 


clienta 


guest 


u 


8 


1000 


* 


* 



Table 5: A partial node ID table for 

Remote Remote Node 
nickname node ID security 


system src_jnach. 

Data link Connection 
type profile 


Attachment 
profile 


clienta 
clientb 
Off.Site 


10811CA1 

20FFFFFFF 

20811838 


None 

Secure 

Secure 


Ethernet 10811CA1 
Ethernet 20FFFFFFF 
SDLC 20811838 


10811CA1 

20FFFFFFF 

Slaved 



L^ri (408)737-9000 9Hi 
^^^^* Mon-Fri7am-9pm,Sat-Sun8am-5pm ^^^^F ■ 

136 Inside the IBM PCs • BYTE 1987 Extra Edition 



of memory-resident tables on each ma- 
chine. Table 4 shows translation tables 
that systems clienta and src_mach 
might use in our network. A request by 
user larry leaving clienta is translated 
to network uid 400, network gid 111 
(larry is a member of group staff on 
clienta). When the request reaches 
src_mach, the uid/gid pair is translated 
according to srcjnach's tables into user 
src, group bin, which are then used on 
src_mach to validate the request. 

Maintaining the tables requires effort 
on the part of the network administrator 
but has the advantage of allowing greater 
machine autonomy, since individual ma- 
chines may vary resource access accord- 
ing to their own preferences. 

DS networks may also choose to limit 
access at the machine level by using the 
secure node identification service offered 
in SNA LU6.2. Whenever a session is es- 
tablished between two machines, and at 
random intervals thereafter, SNA will 
exchange encrypted passwords to authen- 
ticate the remote machine. Each machine 
in the network has a memory-resident 



node table listing the other machines in 
the network that are known to it and 
whether secure node identification (node 
security) is desired. Table 5 shows 
src_mach's node table, indicating that it 
requires authentication from clientb 
and 0ff_Site; a bogus machine mas- 
querading as clienta or 0ff_Site 
would have to guess the password before 
access to DS would be allowed. 

Transparency 

DS is a true distributed computing envi- 
ronment with transparent access of re- 
mote files and message queues. DS rep- 
resents IBM's first attempt to bridge the 
Unix-to-Unix communication gap— an 
area previously filled with 3270 terminal 
emulators, uucp, and other ancient com- 
munication mechanisms. 

Although the initial release of DS 
works only with networks of RT PCs, the 
choice of industry-standard SNA LU6.2 
with its VCI and the VFS/vnode concept 
of file-system description should make 
movement toward a heterogeneous com- 
puting environment straightforward. 



BUY 
THE NUMBERS 



There's only one way to make sure that you're 
buying a genuinely high-performance sys- 
tem and that's to evaluate the competition 
by the real numbers. 



And when you compare Tandon's num- 
bers against our major competition there's 
no doubt who's really selling the systems of 
the future. 



PROCESSOR: 

MEMORY: 

Standard 

Memory Management 

DISK STORAGE: 

Capacity 

Effective access time 

COMPATIBILITY: 

514" floppy 
Runs OS/2 



PRICE: 



TARGA 20 



80286 

6/8 Mhz 

dual speed 



1MB 
Yes 



20 MB 

85 ms 



Yes 
Yes 



$1,999 



PS/2 MODEL 30 TARGA 40 PLUS PS/2 MODEL 50 



8086 
8 Mhz 



640 KB 

No 



20 MB 
85 ms 



No 
No 



$2,295 



80286 
8/10 Mhz 
dual speed 



1MB 
Yes 



40 MB 
35 ms 



Yes 
Yes 



$2,995 



80286 
10 Mhz 



1MB 

No 



20 MB 

85 ms 



No 
Yes 



$3,595 



Take the excitingly priced Targa 20. 
Thanks to its powerful 80286 processor it 
dramatically outperforms the PS/2 model 30. 
And it supports Microsoft's OS/2, the oper- 
ating system standard of the future. 

Or put the Targa 40 up against their PS/2 
model 50. Double the storage capacity, inno- 
vative disk cache technology, and a Tandon 



low price. 

So whetheryou need a powerful system to 
help you manage your business, or else a high- 
performance file server at the heart of your 
network, the Tandon Targa is the ideal fit. 

For more details on the powerful Tandon 
Targa family call: National 1-800-556-1234 
ext. 171, California 1-800-441-2345 ext. 171. 





Please send me your Tandon Fact Pac, 

a comprehensive set of literature and product reviews: 

Name 

Company 

Address 



City/State/Zip 



Telephone 




Tandon Computer Corporation 
405 Science Drive 



2*OM^<<<<&£2£&fe Moorpark,CA 93021 

^BkVVik (805)378-6104 



MUSI ■ 



BYTE IBM 



PS/2 and OS/2 are registered trademarks of IBM Corporation. Microsoft Windows is a registered trademark of Microsoft Corporation. Prices displayed do not include monitor 



Circle 223 on Reader Service Card (Dealers: 224) 



BYTE 1987 Extra Edition • Inside the IBM PCs 137 



THE IBM RT GETS CONNECTED 



puting environment straightforward. 

Network performance is adequate with 
the original Romp processor card, but it 
is significantly enhanced with the new 
Advanced Processor Card, boosting the 
RT to a 4.5-MIPS machine with improved 
floating-point capabilities due to the on- 
boardMotorola 6888 1 math coprocessor. 
The statef ul aspects of DS (directory and 
data-caching) also enhance network per- 
formance and maintain Unix file-access 
semantics in multiple-access situations. 
Finally, DS's excellent network security 
and mounting capability satisfy the fun- 
damental goal of distributed services: A 
user is more likely to use the remote file 



capabilities if he or she trusts the distrib- 
uted-services mechanism. ■ 

BIBLIOGRAPHY 

Bach, Maurice J. The Design of the Unix 
Operating System. Englewood Cliffs, 
NJ: Prentice-Hall, 1986. 

Hatch, Mark J., Michael Katz, and Jim 
Rees. "AT&T's RFS and Sun's NFS: A 
Comparison of Heterogeneous Distri- 
buted File Systems." Unix World, vol. 2, 
no. 11,1985. 

Sager, G. R., and R. B. Lyon. "Distrib- 
uted File System Strategies." Unix Re- 
view, vol. 3, no. 5, 1985. 

Sandberg, R., D. Goldberg, S. Kleinman, 



Dan Walsh, and B. Lyon. "Design and 
Implementation of the Sun Network File 
System." Usenix Conference Proceed- 
ings, Portland, ME, June 1985. 

Sauer, Charles H., et al. "RT PC Distrib- 
uted Services." IBM Industry Systems 
Products, 1986. 

Tanenbaum, Andrew S. Computer Net- 
works. Englewood Cliffs, NJ: Prentice- 
Hall, 1981. 

Walsh, Dan, Bob Lyon, Gary Sager, J. M. 
Chang, D. Goldberg, S. Kleinman, T. 
Lyon, R. Sandberg, and P. Weiss. 
"Overview of the Sun Network File Sys- 
tem." Usenix Conference Proceedings, 
Dallas, TX, January 1985. 



• File locking: This enables a process to 
control access by other processes to a re- 
gion of a file. If a process creates an en- 
forced lock on a section of a file, then 
other processes attempting to read and 
write that section will fail. An advisory 
lock requires more cooperation among 
processes. If an advisory lock is placed 
on a region of a file, other processes can 
still read and write that region freely if 
they choose; they become aware of the 
existence of the advisory lock only when 
and if they attempt to create a lock 
themselves. 

• i-node: In Unix, an i-node is a data 
structure that resides on disk and con- 
tains all the specifics of a file; for exam- 
ple, where the various blocks containing 
the file are on the disk, how big the file 
is, its owner, and when the file was last 
modified. The i-nodes for a given file 
system are stored in a contiguous region 
known as the i-list, and an i-node's posi- 
tion in the i-list is given by an i-number. 
Each entry in the disk's directory con- 
sists of a filename and an i-number, so 
that when you reference a file, the sys- 
tem can locate the i-node defining that 
particular file. 

• mount: You execute this Unix com- 
mand to make a Unix file system avail- 
able for use, typically on a hard disk 
storage device. You can partition the 
hard disk into formatted sections called 
file systems, and each section is as- 
signed a device filename that resides in 
the directory /dev. To attach a file sys- 
tem to the current directory hierarchy, 
you issue a mount command (e.g., 
mount/dev/hd3/usr2/auug). This ex- 
ample makes available the file system on 
hard disk partition 3, starting with the 
path /usr2/auug. 



Glossary 

• Read ahead: Even though you might 
read a single character from a file (e.g. , 
using the getc ( ) function under Unix), 
the system reads data from the disk in 
blocks, where the size of a given block is 
some multiple of the disk's sector size. 
The blocks are kept in memory, so that 
if your program reads another character 
from the file— often the next sequential 
character— the operating system can 
fetch the character from memory rather 
than read the disk again. Thus, the sys- 
tem "reads ahead." 

• shmat: This system call attaches a 
shared memory region to the data seg- 
ment of an executing application. (The 
shmget system call creates the shared 
memory segment.) 

• SNA LU6.2: SNA (System Network 
Architecture) was introduced by IBM in 
1974 as the specification of the means by 
which that manufacturer's diverse com- 
puter products (primarily mainframes 
and minicomputers) would be net- 
worked. The low-level software mod- 
ules that actually provide communica- 
tion services over the network are 
referred to as LUs (logical units), and 
LU6.2 is a particular logical unit that is 
seeing wide use. (LU6.2 has better sup- 
port of distributed transaction process- 
ing than its predecessors. LU6.2 is also 
known as APPC— Advanced Program- 
to-Program Communications— for 
which IBM has recently introduced a PC 
version.) 

• Socket: Used in BSD (Berkeley Sys- 
tem Distribution) Unix, sockets are a 
form of interprocess communication 
that let tasks talk to one another across a 
network. A socket is a set of software 
routines that appears to an application 



program as one end of a two-way com- 
munication path. 

• TCP/IP: Transmission Control Proto- 
col/Internet Protocol. Developed by 
ARPAnet researchers, TCP/IP is a set of 
communications protocols that allows 
computers to share resources across a 
network, and often across dissimilar 
networks. 

• User identifier (uid): Every user on a 
given Unix system is assigned a user 
identification number (stored in the 
/etc/passwd file, which the system 
reads at log-in time). This number is at- 
tached to any file the user creates, so 
that the system can keep track of file 
ownership (particularly important if the 
user decides to make the file accessible 
only to himself or herself). Users are 
also assigned group identification num- 
bers (gid), the distinction being that 
each user has a distinct uid, but multiple 
users can share the same gid. 

• uucp: An acronym for "Unix-to-Unix 
copy." The command cp is the Unix 
file-copy utility; you can think of uucp 
as a modified version of cp that extends 
the source and destination file path 
names to include system name prefixes 
so you can copy files from one system to 
another in a networked environment. 

• Write behind: On many computer sys- 
tems, you can often type commands 
faster than the system can execute them; 
your keyboard input is buffered. Many 
Unix systems offer a similar feature 
when writing to files; the system will 
buffer the data in memory until it has a 
chance to actually write it to the disk so 
that the program isn't being held up 
waiting for a disk. 



138 Inside the IBM PCs • BYTE 1987 Extra Edition 



LAN installation doesn't get much easier than the PC 
Office £&zk<.. Simply typing DBASE to the D: prompt 
brings up dBase HI plus in seconds. It is nearly as fast as if 
the file were loaded from a local 70 ms hard disk. J J 



LAN Magazine 




\Ffc/ez&^ is one of the fastest LANs 
available 



LJ No configuration steps 
required "Plug in and Run'/ 



\—a Very low memory 
overhead. Workstation 
20k bytes 

0Full feature Server 
requires only 38k bytes 



0Crash-proof design. 
No more reboots and 
lost data 

0Moves data around 
the office at hard disk 
speed 



0" Standard DBASE soft- 
ware can be used for 
multi-user applications 




Q^ UPDATE TOKEN technology allows 
multi-user operation with standard 

software 

\ \E\ No office staff training 

0" Compatible with DOS 

Backup, Restore, and print 

spooler 

)Gj Works with Sidekick on other 
permanently loaded tools 

[ZT Simple twisted pair wire to 10,000 
feet, up to 254 computers 

0* Diskless PC option 

BSpecial Developers interface 

using g/ez/C^s new high level 

^h remote DOS Call capability 

LijNew design eliminates 
application slowdown 

LZj No big manuals to study 



Office Computer Connection System 



We believe that business peo- 
ple don't want to obtain a 
Master's degree in Computer 
Science with their major in 
NETWORKING. Most just 
don't have the time to read 
13 or so manuals. 

We designed the system End 
Users told us they wanted. 
We made it usable by real 
everyday people. 



We know people in business 
won't spend a lot of money 
once they know the solution 
is availble for less: 




c/07/C^ systems include a 
high performance network 
board for each computer, 
cables and software. 



PC OFFICE has a complete 
OEM, Dealer/Distributor 
program. 

DON'T BE LEFT OUT. 

CALL 
(619) 268-3235 

IN EUROPE CALL 

(030)3233095 

pc-oFFiCG inc. 

7124 Convoy Court San Diego Ca 92111 

Circle 166 on Reader Service Card 
(Dealers: 167) 



HASfESANN 
TECHNOLOGICAL 
MODEMS THAT IM 



It's long been thought that even the best of technology eventually 
becomes obsolete. A notion that we at Hayes could never really understand. 
And certainly never accept. So in defiance of it, we created the V-series 
Smartmodem 9600™and V-series Smartmodem 2400.™ Modems that actually 
get better as they get older Because they not only incorporate the most intel- 
ligent features found in modems today they also possess the capability to 
provide a long-term growth path into the communications environments of 
tomorrow. 

V-SERIES SMARTMODEM 9600 

This is the fastest modem we've ever made. It can send and receive data 
at 9600 bps and with adaptive data compression achieve an effective 
throughput of up to 19,200 bps. Point-to-point error control, forward error 
correction and data flow control ensure that data gets there accurately. 

The V-series Smartmodem 9600 also comes with automatic feature 
negotiation, a self-operating capability that analyzes all options for modem 
link and then selects the optimum feature set with any Hayes modem for the 
most efficient transmission at the highest shared speed. 

Synchronous and asynchronous communications modes as well as 
simulated full-duplex employing advanced CCITT V32 
trellis code modulation and fast turnaround 
ping-pong technology are also part of the 
package. Plus you'll get the capability to link 
up with a range of networks, including SNA** 
And soon V-series technology will offer an a^rtmodem96oo 

X.25 PAD option to further accommodate net- \ ] (J) Hayes® 
work environments of today. And the future. 



\ fflHayesf 



Hayes Microcomputer Products, Inc. PC Box 105203, Atlanta, GA 30348. 



Circle 97 on Reader Service Card 



OUNCES A 
CONTRADICTION: 
PROVE WITH AGE. 



V-SERIES SMARTMODEM 2400 

With adaptive data compression this modem can achieve an effective 
throughput of up to 4800 bps. Of course, it too offers point-to-point error 
control, forward error correction, data flow control, automatic feature negotia- 
tion and synchronous as well as asynchronous communications modes. And 
like the V-series Smartmodem 9600, it can link up with a wide range of net- 
works, such as SNA, and be enhanced with an X.25 PAD option. 

V-series modems come in stand-alone versions and internal versions 
(V-series Smartmodem 9600B™and V-series Smartmodem 2400B™). Internal 
versions are bundled with our powerful new Smartcom III™ communications 
software. 

And as yet another rebuttal to the argument for obsolescence, we 
developed the V-series Modem Enhancer.™ A separate stand-alone device that 
will upgrade current Smartmodem 1200™ and Smartmodem 2400™ external 
modems to the new standards set by the V-series products. 

A closer look at the V-series product line will reveal to you a revolu- 
tionary technology designed to be the beneficiary of time, not its victim. 
So contact your Hayes Advanced System Dealer or call 
800-635-1225 for the one nearest you. 




V-series 

Smartmodem 2400 



. 



© 1987 Hayes Microcomputer Products, inc. 



Take a look at the first 

typefoundry-quality fonts for IBM users 

that can be scaled to any size. 




Bitstream explains, "Fontware is 
composed of expert software and 
intelligent font outlines encoded with 
typographic rules. " 



"These rules are used to generate high 
quality bitmaps in which consistency of 
stroke weights and other typographically 
significant features are maintained. " 



"The essentials of good type design — 
shape, spacing, weight, rhythm — are 
preserved at all sizes and resolutions. " 




SoftCraft has 
incorporated 
Bitstream's 
Fontware™ pro- 
gram into their 
extensive collec- 
tion of personal 
typesetting 
software. This 
program utilizes Bitstream® 
Fontware outlines to produce fonts, 
giving you an unlimited number of sizes, 
the very best font quality and a large 
number of professional typefaces. 

Fonts can be produced in any size from 
3 to 120 points. The most common sizes 
can be produced automatically, with no 
interaction required. Otherwise, simply 
specify the size, type of printer, font file 
format, and symbol set (such as Roman-8, 
IBM-PC, or foreign languages) and the 
SoftCraft Fontware Installation Program 
does the rest. 

There are currently 80 typefaces 
available and many more soon to come 
from Bitstream, including new typefaces 
specially designed for laser printers. 

Font files can be produced in HP soft 
font format (portrait and landscape) for 
use with the many printers and desktop 
publishing packages that use this standard 
format. Or produce fonts in SoftCraft 
format for use with SoftCraft printing 



programs on laser and dot matrix printers. 

Works with any IBM or MS-DOS 
computer with MS-DOS or PC-DOS 3.1 
or later. Requires 512K memory and a 
hard disk. The SoftCraft Fontware 
Installation Program is $95 and the 
Bitstream Outline Packages are $200 for a 
set of four typefaces. 

SoftCraft products let you take full 
advantage of these fonts. 

SoftCraft's Laser Fonts™ program 
downloads fonts into laser printers and 
automatically configures Microsoft® 
Word, Word Perfect and Wordstar 2000® 
to use the downloaded fonts. Fancy Font® 
can be used with any program that can 
produce an ASCII file to print the large 
fonts produced with the Fontware 
Installation Program. Fancy Word® works 
with Microsoft Word to print graphics and 
fonts up to 120 points. SoftCraft also has 
an extensive library of low-cost bitmap 
fonts ($15/disk). 

The headlines and copy in this ad were set 
in Bitstream 's veision of Times Roman, and 
printed with Fancy Font on an HP 
LaserJets. 

tCraft, Inc. 

16 N. Carroll St., Suite 500, Madison, WI 53703 
(608) 257-3300 1-800-351-0500 

Circle 203 on Reader Service Card (Dealers: 204) 




P 

E 
F 
A 
C 
E 
S 






utlirie Package 
includes four typefaces, 
usually roman, italic, bold 
and bold italic, 

Dutch 801. Bitstream's version of 

the Times Roman® rype&ce. 

SWISS 72 1 . Bitstream's version of 
the Helvetica® typeface. 

Courier 

Headlines: Cloister Blacfc? 

Bitstream's Cooper Black. 

Ei cad way ;• the 

University Qoman® typeface. 
Swiss 721 Condensed 
Swiss 721 Light 
Letter Gothic 
Prestige 
Zapf Calligraphic. BUsiream's 

veraion of (he PalatinO® typeface. 
Zapf Humanist Bitstream's 
version of the Optima® typeface. 

Century Schoolbook® 

ITC Souvenir® 

ITC Garamond® 

ITC Avant Garde Gothic® 

UG Galliard® 

ITCKorinna® 

Bitstream Charter™ 

Futura®Book 

Fufura Medium 

Futura Light 



INSIDE THE IBM PCs 



How to put a device-independent interface between 
your application and input devices 



Application Input Drivers 



Jeremy Sagan 



As window-based user inter- 
faces become more prevalent, 
learning to incorporate input 
devices such as mice, joy- 
sticks, or graphics tablets into 
applications is becoming im- 
portant. Often, the applica- 
tion's writer does not want to 
limit a program's users to a 
particular input device from a 
particular company. Here I 
will present a technique for 
isolating the device-depen- 
dent details from the device- 
independent details of writing 
an input driver, so a program- 
mer can design an application 
to use various input devices. 

Writing an effective appli- 
cation input-device driver re- 
quires a minimal set of soft- 
ware subroutines. You must 
consider all varieties of cur- 
rently available input devices 
before finalizing these sub- 
routines. 

Take a mouse, for example. 
It sends data to the computer 
in the form of relative coordi- 
nates, which are the differ- 
ence between the current co- 
ordinates and the previous 
coordinates. A graphics tab- 
let, on the other hand, sends 
data in absolute coordinates. 
An application input driver 
that supports both types of de- 
vices must receive data in either relative 
or absolute coordinates. If it receives rel- 
ative coordinates, it is a simple matter to 
have the application convert absolute co- 
ordinates into relative coordinates for it. 

I will illustrate this technique with two 
approaches to writing a mouse driver, but 
you can extrapolate from that for other in- 
put devices, such as a graphics tablet or a 
joystick. Figure 1 shows the overall strat- 
egy. The set of routines that I will use are 
initialization, return-button status (for up 



. T 7?r;,rr:; 




to eight buttons), motion detection, and 
cleanup. A device-dependent routine 
translates the hardware characteristics of 
a particular device to satisfy these 
routines. 

The Microsoft Mouse interface and 
system calls (see reference 1) have be- 
come the de facto standard for interfacing 
an application to a mouse. They provide a 
set of functions ranging from mouse posi- 
tion and button status to cursor control. 
Most mouse manufacturers provide 



drivers that let their mice 
work with software originally 
written for the Microsoft 
Mouse. The advantage of this 
standard is that it lets you 
write applications that will 
work with most mice; the 
down side is that this standard 
is for two-button mice, and 
some applications might need 
three or more buttons. If you 
want to use special features of 
a mouse beyond the Microsoft 
standard, you must write di- 
rectly to the hardware. 

I have written two drivers. 
One takes input from a Micro- 
soft-compatible mouse; the 
other takes input from a three- 
button Mouse Systems serial 
mouse and translates hard- 
ware dependencies to the de- 
vice-independent set of rou- 
tines that I defined for the 
application input routine. 

I have also written a dem- 
onstration program, called 
MDRIVER.ASM, that shows 
how an application would use 
this device-independent inter- 
face. You set a flag at the top 
of the program to determine 
whether you want to use a 
Microsoft-compatible mouse 
(which causes MICROSOFT- 
.ASM to be included), or the 
Mouse Systems serial mouse 
(which causes MSYSMOUSE.ASM to 
be included). Because it is beyond the 
scope of this article to provide all the 
code needed to implement the loading of 
device drivers, I will present the code that 
assumes that the driver and the applica- 

continued 

Jeremy Sagan is the director of advanced 
technology for Business & Professional 
Software. He can be contacted at 143 
Binney St. , Cambridge, MA 02142. 



Illustration: Mike Hodges © 1987 



B Y T E 1987 Extra Edition • Inside the IBM PCs 143 



APPLICATION INPUT DRIVERS 



tions program both reside in the same 
64K-byte segment of address space. The 
input driver would typically be loaded in 
a different segment, but for simplicity's 
sake, I have compiled them together and 
made the entry routine a near procedure. 
[Editor's note: The custom mouse 
driver shown in listing 1, MSYSMOUSE- 
.ASM, MICROSOFT.ASM (not shown), 
and the demonstration code MDRIVER- 
.ASM (not shown) are available on disk, 
in print, and on BIX. See the insert card 
following page 208 for details. Listings 
are also available on BYTEnet. See page 
4. This code is in 8086/88 assembly lan- 
guage, and you will need the Microsoft 
Macro Assembler to assemble it. ] 

Talking to the Hardware 

Making calls to the Microsoft driver con- 
sists of simply loading registers ax, bx, 
ex, and dx with values that determine the 



function call you want, and executing an 
INT 5 1 , which is the entry point of the 
Microsoft Mouse driver. Register ax is 
the function number, and the other regis- 
ters, if used, are parameters for that func- 
tion. All the Microsoft Mouse system 
calls are thoroughly documented in the 
Microsoft Mouse User 's Guide. The file 
MOUSE.COM takes care of the details 
of communicating with the hardware. 

In contrast, the custom mouse driver I 
wrote interfaces to the mouse at a hard- 
ware level by reading data directly from 
the serial port in the form of a 5-byte 
packet (see reference 2). The first byte is 
a combination of five synchronization 
bits and three bits for button 1 , button 2, 
and button 3, respectively. A clear bit 
means that the corresponding button is 
pressed; the device-dependent driver 
translates this to a set bit for a button 
press, because this is what the application 



input driver expects. The next 4 bytes are 
two updates of the mouse-movement 
counters, delta jc, delta v, delta*, delta y. 

These packets of information are trans- 
mitted from the mouse to the host com- 
puter whenever the mouse detects move- 
ment. This is sometimes referred to as 
"stream mode." If you were to use the 
polling method for gathering data, your 
program would either be severely handi- 
capped, capable only of reading mouse 
data, or it would lose data while it was 
busy performing other tasks. You must 
have an interrupt handler execute each 
time new data becomes available if you 
want to ensure that your data is not lost. 

Figure 2 shows a flowchart of the inter- 
rupt service routine (ISR). It reads and 
processes 1 byte from the serial port, 
then returns from the interrupt. A packet- 
counter variable keeps track of the cur- 

continued 



Application code 

Hardware-independent 
interface 

Device-dependent 
modules 

Hardware 














• • 


bx = Function # 
Call entry routine 












1 . Initialization 

2. Return button 
status (for up to eight 
buttons) 

3. Motion detection 
(relative coordinates) 

4. Clean up 








a 
















Interface to 
Microsoft-compatible 
mouse driver 
(MICROSOFT.ASM) 




Mouse Systems 
serial mouse 
custom driver 
(MSYSMOUSE.ASM) 




Custom graphics 
tablet driver 




















Microsoft-corn patible 
driver (supplied by 
most mouse 
manufacturers) 




















M icrosof t-compatible 
mouse 




Mouse Systems 
serial mouse 




Graphics tablet 
hardware 













Figure 1: By placing a device-independent interface between 
the application code and the input hardware, a programmer 
can write an application that works with a variety of input 
devices. The device-dependent code is isolated into modules 



and translates the hardware requirements into the standard 
interface. For example, the custom graphics tablet driver can 
translate absolute coordinates to the relative coordinates that 
the application is expecting. 



144 Inside the IBM PCs • BYTE 1987 Extra Edition 




dICE-51 



/y 



'■fc 






Powerful, Easy to use: 8051 debugger with In-Circuit-Element interfaces to COM 1 of your PC. 



In-Circuit Debugging 

Plug dICE-51 into your 8051 prototype and 
you'll see things you've never seen before. 
dICE-51 executes I/O Code in the 8051 circuit, 
so that when you debug motor controllers, 
motors move! When you debug LCD or LED 
controllers, pixels flash; with 
pneumatic controllers, cylinders 
extend. You can exercise memory 
mapped I/O and access prototype 
RAM, ROM, Switches, A/Ds, 
D/As, etc. Compatible with 
8051, 8052, 8031, 8751, etc. 
(CMOS versions available at 
extra cost). 



Powerful, 
Dynamic User 
Interface 

The user interface is 
identical to Sim8051 
v3.0, which received 
PC Tech Journal Magazine's 
"Product of the Month" award 
for its unique, multi-windowed 
dynamic interface. Single char- 
acter commands prompt for data 
if required, while you can scroll 
through source code and scan 
symbol space at any time - while 
stopped, stepping, or executing. The 
Execution Profiler creates a histograph 
that varies dynamically while the program 
executes. You can change the limits to zoom 
in on regions of code space, and scroll through 
the source code to study hot spots while they 
execute. Of course, the usual breakpoints 
and conditional visibility subroutines are 
built in, with Cybernetic Micro Systems' unique 
FlowGraph windows that can be dumped to 
IBM printers, Laserjets, etc., for detailed, 
commented, self documenting records. You'll 
be amazed at how much faster and better you 
design with these 8051 PC-based tools. 




8051 



Easy Access to all 8051 Spaces 

dICE-51 provides easy access to CODE 
space, DATAspace, BIT space, External 
RAM space, and Special Function space. 
All 8051 special bits and registers are 
automatically labeled when you access them. 

In-Circuit Element 
Replaces 8051 

Cybernetics unique CY8051 chip 
plugs into your 8051 prototyping 
board which connects to your 
PC serial port. 

Live Keyboard, 
Displays, Everything 

The dICE-51 keyboard 
is always live', allowing 
you to scroll through the 
source code, scan symbols, 
or change bits or bytes, 
even while your program 
is running. Execution 
Histographs and Interrupt 
Count summaries are 
updated while your 
program executes. 

Global Symbol Monitor 

When single stepping, and after 
fast execution, dICE-51 will 
display every named variable 
whose value was altered. Spot 
errors as they occur! Don't wait 
FLOW f° r a subsequent crash and 

| GRAPH then try to backtrack. 

'C Language Support as 
well as Assembly 

If you write in 'C, you need an execution pro- 
filer, since 'C programmers have no idea 
where their program spends the most time. 
dICE-51 works with Archimedes 'C-51'. 



Complete 8051 Design Support • 



\— 



dICE-51 Debugger with In-Circuit- 
Element consists of one disk and one 
chip. No computer slot, no umbilical 
cord, no pod or ICE box. CY8051 IC 
element plugs into your 8051 socket. 
You connect your application circuit 
to your PC's COM 1 and the dICE 
software communicates over the RS 232 
port. 8051 strobes such as WR and RD 
preserve timing, but port I/O instruc- 
tions run at the reduced rate character- 
istic of Sim8051. 

$795 

CYS-8051 Cross Assembler pro- 
duces LST and HEX files from ASM 
files. The Intel HEX code files are com- 
patible with most EPROM equipment. 

$295 



SIM-8051 A superb 8051 debugger 
that offers all features of dICE-51 
except the In-Circuit-Element. The 
system Cycle Counter Register can pro- 
vide timing accurate to one 8051 
instruction cycle. 

$595 Demo Disk $39 

CYP-8051 8751. 87C51 and 27xx 
EPROM Programmer Kits - low cost 
EPROM Programming with all func- 
tions available from within CYS-8051 
Cross Assembler. 



$245 kit form 



$395 assembled 



PROTO-51 An 8051 Prototyping 
Kit is available. 

Software not copy protected. 



D Rush free data sheet on dICE-51 and 8051 tools. 

□ Send $10 User Manual. 

□ Send$39dSim8051(UserInterfacedemodisk& Manual) 

□ Send $795 dICE-51 plus $5 shipping. 

□ California Residents add Sales Tax 

□ Check enclosed □ Charge my VISA/MC/AMEX card 
Card # Expire Sign 

Name Title 



Company. 
Address _ 
City 



_ State . 



_ Phone 

_MailStop_ 
_Zip 



For school quantity discounts, request on your school letterhead. 

Cybernetic Micro Systems, Inc. 

1 Box 3000 • San Gregorio, CA 94074 • USA 
(415) 726-3000 • Telex: 910-350-5842 




Circle 65 on Reader Service Card 



B Y T E 1987 Extra Edition • Inside the IBM PCs 145 









APPLICATION INPUT DRIVERS 



You must have 
an interrupt handler 
execute each time 
new data becomes 
available if you want 
to ensure that 
your data is not lost. 



rent position in the packet. A packet is as- 
sumed to be "in progress" when the 
packet counter is not equal to zero. If in- 
terrupts are disabled too long, a serial 
overrun error can occur, which means 
that the interrupt handler did not have a 
chance to read the previous byte of data. 
In the event of a serial error, the ISR sets 
the packet counter to and returns. If 
there is no serial error, ISR tests to see if 
the packet counter is and the byte is the 
sync byte. This ensures that the routine is 
synchronized with the mouse. If the 



counter is not 0, then you accumulate 
delta values— by adding to delta x for an 
odd packet counter, and by adding to 
delta y for an even packet counter. 

The Device-Dependent Routines 

Implementing the routines for the Micro- 
soft standard interface is simple. The ini- 
tialization routine inspects interrupt vec- 
tor 5 1 to see if the mouse interface and 
system calls are resident in memory. If 
they are, it initializes the mouse using 
function and sets the variable MOUSEF 
to the value returned in ax. This value 
will be negative if the mouse hardware 
and software are installed. 

Function 5 returns the button status, in 
register ax; bits and 1 represent the left 
and right buttons, respectively. These 
bits are set if the corresponding button 
has been pressed, and cleared if it has 
been released. On entry to this function, 
register ex corresponds to the button you 
are interested in. If ex equals on entry, 
then on exit a count of the times the left 
button has been pressed will be returned 
in bx. Similarly, if bx equals 1 , a count of 
the times the right button was pressed 
will be returned. 



Read data 
and status 




Yes 



v'packet^v 
(" counter 


Yes 








\. even y^ 


\ 


f 


^No 




Add to 

delta y 


Add to 

delta x 


























Increment 
packet 
counter 





Yes 



H 



Store status 

increment 

packet 

counter 



j 




Yes 



Return 



Clear 
packet 
counter 



Return 



Figure 2: The flowchart of the interrupt service routine for the Mouse Systems 
serial-mouse custom driver. 



You use function 1 1 to determine how 
far the mouse has moved since the last 
call to this function. The change in the x 
coordinate is returned in ex; the change in 
y is returned in dx. The motion counter is 
device-dependent; since Microsoft has 
two different mice (one at 100 dots per 
inch and one at 200 dpi), you may have to 
implement two Microsoft Mouse drivers. 

Listing 1 shows the code for the custom 
Mouse Systems driver. The initialization 
routine, ISERIAL, is called with the 
communications-port number in ax 
(l=coml, 2=com2), and it initializes 
the serial port to 1200 bits per second. 
This routine also enables the serial port's 
data-available interrupt. Some serial 
cards can be configured for com3 and 
com4, but since there are only two serial 
interrupt lines, only coml or com2 will 
work with the routines presented here. 
The button-status routine, which simply 
reads BSTAT, translates the Mouse Sys- 
tems button-status bits, to give an on bit 
for every button pressed. 

The motion-counter routine is called 
with the current absolute x and y values in 
the ax and ex registers, respectively. If 
this device dealt exclusively with absolute 
coordinates, it would need these values to 
return a relative value to the application. 
However, since the Mouse Systems 
mouse uses only relative data, you can ig- 
nore these values. The motion-counter 
routine reads the current delta values and 
then clears them to 0. The y coordinate is 
negated; I arbitrarily decided I wanted y 
coordinates to move downward as they in- 
creased. This function call returns with 
ax equal to delta x and bx equal to delta v. 

The cleanup routine disables the serial 
interrupts that the initialization routine 
enabled. If you don't disable the serial in- 
terrupts before you exit to DOS, then the 
interrupt handler will be overwritten as 
soon as you load another program. The 
next time a serial data-available interrupt 
executes, the CPU jumps into the middle 
of the newly loaded program, inevitably 
crashing the computer. 

Unfortunately, if your applications 
program uses any DOS functions that 
produce a critical error, and if the user 
selects abort instead of retry or ignore 
(or presses Control-C and DOS pro- 
cesses it), the result will be the same: a 
crashed computer. You can circumvent 
this problem in several ways. 

One extremely impractical way is to 
avoid using DOS calls that process Con- 
trol-C and to not perform any I/O. A 
more realistic solution is to load the 
driver with DOS function-call number 3 1 
hexadecimal, "Terminate Process and 
Remain Resident," and keep it in mem- 
ory. A third solution, which I commonly 

continued 



146 Inside the IBM PCs • BYTE 1987 Extra Edition 



<attice 
rdBCIIIPlus 



Lattice 

Source Entry Utility 



• Lattii 



Lattice 

iflEt/MenSe Utility 




Lattice 

<>!-TX')!)Snioi#isboi\l 




Lattice 

RPG II Compiler 



ilLat 
CCI 




Lattice 
C Compiler 



l>iler 



Lattice 

Screen Design Ai( 



Lattice 
Screen Editor 




Lattic 
Make 




<^> 



^ 



Lattice g 
SecretDisk 




Our software comes with something 
no one else can offer. 



When you join the lattice family 
of customers, you'll discover that 
your software purchase is backed 
by more than just an excellent 
warranty. Its backed by unparal- 
leled technical support. By a total 
commitment to your success and sat- 
isfaction. And by Lattice's dedication 
to excellence in products and services. 

Unlike other software manufacturers 
who charge you for services after you've 
purchased their product, lattice offers 
a unique package of support programs 
at a price we can all live with — FREE. 

Lattice Bulletin Board Service 

LBBS is our 24-hour a day bulletin 
board system that allows you to obtain 
notification of new releases, general 
information on lattice products, and 
programs for the serious user And if 
you've ever experienced the frustration 
of having to wait a year or more for 
a new release (that has corrected a 
bug), you'll really appreciate LBBS. 
Because with this service, you can 
actually download the latest program 
fixes to instantly eliminate any bugs 
discovered after release. 



Available through dealers and 
distributors worldwide. 



Lattice Service. 



Technical Support Hotline 

Responsible, dependable and capable 
Support Representatives are only a 
phone call away You will talk to a highly 
skilled expert who is trained to answer 
any questions you have relating to 
specific lattice products. Remember, 
your complete satisfaction is our goal. 

McGraw-Hill BIX™ Network 

The Byte Information Exchange (BIX) 
Network is a dial-in conference system 
that connects you with a Special Interest 
Group of lattice users. The nominal 
one-time registration fee allows you 
to BlX-mail your questions — via your 
modem — directly to Lattice. Or you 
can post your questions in the con- 
ference mode for lattice or other users 
to answer. Once again, you have 
24-hour access. 



You Also Receive: 

■ Timely updates and exciting 
enhancements ■ 30-day, money- 
back guarantee ■ lattice Works 
Newsletter ■ Technical Bulletins 

■ Access to Lattice User Groups 

lattice has developed more than 50 
different Microcomputer software tools 
that are used by programmers world- 
wide. We were there for every MS-DOS 
release. We're there now for OS/2. And 
we'll be there for the next generation 
of technical changes. But most of all, 
lattice is there for you. 



Lattice 
RPGDC 



Lattice, Incorporated 
2500 S. Highland Avenue 
Lombard, IL 60148 
Phone: 800/533-3577 
In Illinois: 312/916-1600 
Subsidiary of SAS Institute Inc. 




/ 



Lattice 



Circle 121 on Reader Service Card 



\ 



Hard Locks 
for Soft Parts. 




At Rainbow Technologies, we think protecting 
software developers* investments is very serious 
business. That's why we designed the first fully 
effective security solution for software running on 
PCs and other computers. 

Our family of virtually impenetrable Software 
Sentinel hardware keys provides the highest level of 
software protection the developer can get. While 
remaining invisible to the end user. 

Take a look. 

Key Sentinel Family Features. 

Prohibits unauthorized use of software D No need 
for copy protection ° Unlimited backup copies ° 
Virtually unbreakable D Pocketsize key D Trans- 
parent operation D Transportable 



Software 
Sentinel. 



O Runs under DOS and Xenix, 
on IBM PC/XT/AT and 
compatibles 

O Algorithm technique 
(Never a fixed response) 

O Serial or parallel port version 

O Minimal implementation effort 

O Higher level language 
interfaces included 

O 100 times faster than fixed- 
response devices (1ms) 



Software 
Sentinel-O 



O For developers who want to 
customize or protect multiple 
packages widi one device 

O 126 bytes of non-volatile 
memory that is programmed 
before shipment of software 

O We supply a unique 
programming adapter for 
rtfograniming the unit 



O Higher level language 

interfaces included 
O Runs under DOS on 

PC/XT/AT and compatibles 
O Parallel port version only 

Software 
Sentinel-W. 

O Designed for workstations, 

supermicros and minicomputers 
O Serial port only (modem-type) 
P Algorithm technique 
° We provide detailed interface 

specifications: Developer 

creates a port driver 
O Interface requirements: 25 pin 

DB25PorDB25S; 

RS232/RS422/RS423 
O Only signals used: DTR & RTS 

from computer; signal ground; 

DSR or optional DCD front 

Software Sentmel-W or external 

device. TXD, RXD, CTS, RI 

passed through. 

Call For Software Sentinel 
Evaluation Kit Pricing, 



Jltiiematiomii Distributors Wanted 
Mmmaw technologies 



•teon-AMticHatsourH 



'••v., \f */'-/ ■ 



APPLICATION INPUT DRIVERS 



Listing 1 : The 8088/86 assembly code for the Mouse 
Systems custom driver, MSYSMOUSE.ASM. The routine 
1SERIAL installs the interrupt service routine in one of 
the serial-port interrupt vectors, OCh or ODh. The 
application places the function number in bx and issues 
a call to the entry routine. 

ASSUME CS:CSEG, DS:CSEG, ES: NOTHING, SS: NOTHING 



SERIAL EQU 
MSDOS EQU 



UH 
21H 



This is the main entry point 

all driver routines take the function-call number in BX 

function = initialize mouse 
function 1 = return button status 
function 2 = return relative motion 
function 3 = de-initialize mouse 
function 4 = return current serial port 

Normally this would be a far procedure, but to avoid 
getting into all the intricacies of loading and 
calling drivers, I ' ve converted ENTRY to a near 
procedure and combined it with the sample program. 



ENTRY 



PROC 
CLD 

PUSH 
PUSH 

POP 
SHL 
CALL 



POP 
RET 

ENTRY ENDP 

i 

DB 



NEAR 



DS 
CS 

DS 

BX,1 

ROUTINES [BX] 

DS 



; Go in the forward 
; direction 

; Save caller's segment 
; Make this segment 
; addressable 

; Point to routine 

; and call it through 

; table 

; Restore user's segment 

; Return far to caller 



'Mouse Systems', 00 



ROUTINES LABEL WORD 



DW 

DW 

DW 

DW 

DW 

DW 
DW 
DW 

C0MNUM DW 

NEWX DW 

NEWY DW 

XACCUM DW 

YACCUM DW 

BSTAT DB 

CP0RT DW 

PC0UNT DB 
IMSK DB 



ISERIAL 

BUTT0NSTAT 

M0TI0NC0UNT 

DSERIAL 

GSERIAL 

RETADR 
RETADR 
RETADR 

00 

00 

00 





07H 

03F8H 


0EFH 



function = initialize 
mouse 

function 1 = return 
button status 
function 2 = return 
relative motion 
function 3 = de- 
initialize mouse 
function 4 = return 
current serial port 
function 5 = reserved 
function 6 = reserved 
function 7 = reserved 

; com# 

new x coordinate 
new y coordinate 
old x coordinate 
old y coordinate 
button-status byte 
communications-port 
address 
packet counter 
interrupt mask 



148 Inside the IBM PCs 



Circle 194 on Reader Service Card 



Circle 9 on Reader Service Card 



APPLICATION INPUT DRIVERS 



; This is the heart of the code . 


*, The serial interrupt handler. This code catches 


; serial bytes and maintains 


a running total of delta x 


; and delta y values . 




ISR: 




• 






STI 




Ints back on 




PUSH 


AX 


Save all registers used 




PUSH 


BX 






PUSH 


DX 






PUSH 


DS 






PUSH 


CS 






POP 


DS 


Make code segment 
addressable 




MOV 


DX,CP0RT 


Get port address 




ADD 


DX,5 


Status 




IN 


AL,DX 


Read status 




MOV 


AH,AL 


Save in AH 




SUB 


DX,5 


Back to data port address 




IN 


AL,DX 


Get byte from port 




AND 


AH,01EH 


Mask error bits of status 




JNZ 


ISR3 


Jmp if error 




Jump if an error has occurr 


ed on the serial line, most 




likely an overrun error caused by interrupts cleared 




for long periods of time. This will be handled simply 




by clearing the packet cour 


iter. 


ISR2: 










•CMP 


PCOUNT, 


Is this the first byte of 
packet? 




JNE 


ISR25 


No, so accumulate . 




MOV 


AH,AL 


It is the first byte, so 
check certain 




AND 


AH,0F8H 


bits to see if we ' re in 
sync with the 




CMP 


AH,080H 


data stream . If we ' re 




JNZ 


ISR4 


not, then we' 11 just 
return . 




MOV 


BSTAT,AL 


We are in sync, so stuff 
button-status byte . 


ISR25 : 










MOV 


BL, PCOUNT 


Get packet counter 




INC 


PCOUNT 


Increment for next serial 
interrupt 




OR 


BL,BL 


If it ' s zero we ' re done 




JZ 


ISR4 




t 


CBW 




Convert delta byte to 
delta word 




TEST 


BL,1 


Check i f odd or even : 
odd = x values 




JZ 


ADDY 


even = y values 




ADD 


XACCUM,AX 


Add to running x 
accumulator 




JMP 


SHORT ISR29 




ADDY: 










ADD 


YACCUM,AX 


or add to running y 
accumulator 


ISR29: 










CMP 


BL,4 


, End of packet 




JB 


ISR4 


No 


ISR3: 










MOV 


PCOUNT, 


Yes, so reset packet 
counter 


ISR4: 


CLI 








MOV 


AL,020H 


must issue end of interrupt 




OUT 


020H,AL 






POP 


DS 






POP 


DX 


continued 



9-TRACK MAG. TAPE SUBSYSTEM* 
FOR THE IBM PC/XT/AT AND... 




For information interchange, backup and archival storage, 
AK Systems offers a 9-track, IBM format-compatible 
Vfe" magnetic tape subsystem for the IBM PC, featuring: 

■ IBM format 1600/3200 and 800 cpi. 

■ Software for PC-DOS, MS-DOS, XENIX. 

■ AlsoforAT&T, DEC, VAX, 
VME, S-100, RS-232, 
IEEE 488. 

# formerly IBEX Mainstreamer 



AKSystems 



20741 Marilla St. 
Chatsworth, CA 91311 
Write, phone or TWX for information. ( 8 18) 709- 8100 



TM 

TIME I X 



THE PERSONAL TIME MANAGER 

Finally, a real productivity tool for professionals, 
managers and executives (and their secretaries) 

Organize your day and SAVE TIME 

Rated "Best Business Software of the Year" 

o Keep track of your appointments and things-to-do 

o Memory resident appointment alarms 

o Full "tickler file" capability 

o Enter "tickler" notes of any length using a built-in 

wordprocessor 

o Maintain a full history of your activities 

o Use to prepare meeting agendas, minutes, activity reports 

o LOTUS-like menus, pop-up windows, on-line help 

o For IBM PC, PS/2 and compatibles 

o Runs on networks 

Dealer inquiries invited, site licensing available 

$79 (specify 5 1/4" or 3 1/2" diskettes) 

OAK PARK SOFTWARE Inc. 

P.O.Box 710 Milwaukee Wl 53201-0710 
(414) 797-7911 

Phone orders, Master Card/VISA, checks 
Add S3 for shipping and handling, Wisconsin residents add 5% sales tax 



Circle 152 on Reader Service Card 



Inside the IBM PCs 149 



Circle 245 on Reader Service Card 




phl 



BROOKLYN! 



BRIDGET 



WHITE CRANE 
SYSTEMS 

404-394-3119 

Suite 151 

6889Peachtreelnd. 
Boulevard 



Norcross, Georgia 
30092 



Laptop & IBM PS/2 Users: 

The solution to bridge the gap between your 5)4 & 
ZYi inch drives. 

"It's a steal. It allows you to use your favorite DOS 
shell for selective file transfer and it even lets you 
use your PC's peripherals from your laptop ... In 
short: An exceptionally fast and functional transfer 
utility. . .The Brooklyn Bridge is the perfect solution 
for people who use a laptop almost exclusively as a 
portable machine that travels from PC to PC. It's 
terrific!"- Howard Marks, PC Magazine, July 1987" 

Rated as one of the best of the best utilities 
by John Dvorak. 

"This is one of those rare programs that you enjoy 
the minute you take it out of the box, especially when 
you discover that a cable is included . . . Excellent 
product."- PC Magazine. June 23, 1987* 

End users are "sold on Brooklyn Bridge. . . 

Dvorak is certainly correct in describing White Crane 
Systems' Brooklyn Bridge as 'Fabulous'. . .and I 
love it."- G. Schochet. Letter to the Editor, PC 
Magazine, May 12,1987* 

PS/2 users: The Brooklyn Bridge allows data transfer 
and drive access in either direction so you may also 
transfer yourdata back to your 5 l A inch PC. 

Priced at $129.95, call White 
Crane Systems to order or 
for more information. 

"Reprinted from PC Magazine, 
copyright 1987 Ziff 
Communications Company 



APPLICATION INPUT DRIVERS 




SIXTEEN MEGABYTES 

IN ONE SLOT 



That's right! 

The PC Tech Sixteen Megger board gives you 16 Megabytes of 
fast Dynamic RAM in a single slot. 

The Sixteen Megger works in the IBM PC/XT/AT and compatibles 
at all speeds from 4.77 to 10 Mhz. 

On an XT, the Sixteen Megger can be 
used as 8 bit wide, bank switched, 
expanded memory. 

On an AT, the Sixteen Megger is 16 
bits wide and can be used as ex- 
panded or extended memory or a 
combination of the two. 

The Sixteen Megger comes complete 
with software for the Lotus/In- 
tel/Microsoft Expanded Memory 
Specification, as well as a fast 
memory disk program and an exten- 
sive diagnostic program. 

Priced from $475 for 2 Megabytes to 
$4,250 for a full 16 Megabytes. Four 
and Eight Megabyte versions are also 
available. 

Another smart Idea from PC Tech. 
Still available: The Four Megger, four 
megabytes of expanded memory on a 
^hort card, $750. 

904 N. 6th St. 

Lake City, MN 55041 

(612)345-4555 

Designers of the X16 and Other Fine Computer Products 





POP 


BX 


POP 


AX 


IRET 





; Restore registers 

; and return from interrupt 



This table maps button values into ones appropriate 
for returning to application 



BUTMAP DB 



07,03,05,01,06,02,04,00 



This routine returns button status = ax 
a 1 bit indicates button presses 



BUTTONSTAT: 






PUSH 


BX 




MOV 


AL,BSTAT 




AND 


AX, 7 




MOV 


BX, OFFSET 


; Convert to 




BUTMAP 


; Microsoft format 


XLAT 






POP 


BX 





RETADR: 

RET 

Motion-count routine 

on entry : 
ax=cursor x, cx=cursor y (ignored by this driver) 

on exit: 
ax=delta x,bx=delta y 



MOTIONCOUNT: 






CALL 


QREADPACKET 


; Read a packet 


MOV 


BX,NEWY 


; Return y coordinates 


NEG 


BX 


; Positive coordinate 
; move down the screen 


MOV 


AX,NEWX 


; Return x 


RET 






; Clean up the serial-port interrupts and masks 


DSERIAL: 






CLI 






IN 


AL,021H 


Read interrupt mask 


MOV 


AH,IMSK 


Clear appropriate int 


NOT 


AH 


by setting bits 


OR 


AL,AH 




OUT 


021H,AL 


Write it out 


MOV 


DX,CP0RT 


Get port address 


ADD 


DX,3 


line-control register 


IN 


AL,DX 


Fetch it 


AND 


AL,07FH 


Set low to access 
interrupt-enable 


OUT 


DX,AL 


register 


SUB 


DX,2 


Point at interrupt-enable 
register 


SUB 


AL,AL 


Clear 


OUT 


DX,AL 


it 


ADD 


DX,3 


and clear 


OUT 


DX,AL 


modem-control register 


STI 




Finished 


RET 






GSERIAL: 






MOV 


AX,C0MNUM 


returns com# 


INC 


AX 




RET 







This code initializes the Mouse Systems serial mouse 
It takes the com number in AX (1 = coml, 2 = com2) 



ISERIALPROC 
PUSH 



NEAR 
CX 



continued 



150 Inside the IBM PCs 



Circle 168 on Reader Service Card 







3 



9 *?*«sfc 



Get Disk Optimized 

Your hard disk will run faster wfier? 

it's not chasing around after files* 





It's the safest, most effective way to put 
the zip back in hard disk performance. 

Remember the old days when your hard 
drive was new? Remember that smooth, fast, 
slick performance? Those quick retrievals, 
rapid saves, lightning-like database sorts? 

Well ever since, DOS has been doing its 
best to slow your hard drive down. Not 
by slowing down the motor, but by 
breaking your files up into pieces. 
Storing different chunks in different 
places. Data files, programs, over- 
lays and batches that started out 
in one seamless piece are now 
scattered all over. 

Loading is slower. per£Lt°fragmhntation 

Sorting iS Slower. Themorc f raj^cm cd v«u r lilt-* 8c t. tfv 

_ . . . . . rhev take to retrieve. 

Retrieving, backing-up. 
Everything takes longer because 
your disk has to work harder. 

Problem is, it's something that happens so 
gradually you may not notice the difference. 
At least, not until you see the dramatic 
improvement after using Disk Optimizer. 

File fragmentation — It's a problem 
you can see. 

Watch your hard drive the next time it 
reads or writes a file. Each "blip" of the LED 
means the drive-head is moving to another 
place on the disk— either to pick up or lay 
down another chunk of data. 

And the truth is, head movement takes 
time. Far more time than actual reading and 
writing. What's worse, all this head move- 
ment causes extra wear and tear that can 
shorten the life of your drive. 

Disk Optimizer — Tunes up your disk 
by cleaning up your files. 

Disk Optimizer works by finding all the 
scattered pieces of your files and putting them 



back together where they belong. Next time 
your drive reads it, there's just one place 
to look. 

And the results are often 
dramatic. Reading and writing 
times may be cut by as much as 
two thirds. Database sorts that 
used to take hundreds of head 
moves now proceed quickly and 
efficiently. And since head move- 
ment is now at an absolute mini- 
mum, your disk drive will lead 
a longer, more productive life. 

Analyze, scrutinize, optimize. 

Before you optimize, you'll probably 
: ioniser want to analyze. So Disk Optimizer 

shows you, in percentages, how much 
fragmentation has taken place— on the 
entire disk, in individual 
directories, or for groups of 
files you specify using global 
or wildcard names. 

Plus, there's built-in data 
security that lets you assign 
passwords to as many files or 
file groups as you want. 

And the File Peeker gives 
you an inside look at the 
structure of files. It's a great 
way for non-programmers to 
learn more about computers, 
and a powerful tool for 
professionals who want to 
analyze the contents of their 
disks. 



better than before. Not only will it 
optimize your disks in far less time than it 
used to, but it actually speeds up retrievals 
even more by letting you give priority treat- 
ment to your most used files, like programs 
and batches. 

When you think about it, it's simple. 
The longer you own your hard drive, the 
more you come to depend on it. But the 
longer you wait to get Disk Optimizer, the 
less performance you'll get. 

Use it just once and discover what thou- 
sands of satisfied PC users already know- 
$59.95 is a small price to pay to restore 
the speed and performance you count on. 

Buy Disk Optimizer at better computer 
dealers everywhere, or order today by call- 
ing SoftLogic Solutions at 800-272-9900 
(603-627-9900 in NH). 



Get your hard disk back in 
shape — with new improved 
Disk Optimizer. 

Hard to believe, but the 
new Disk Optimizer is even 



4^Disk Optimizer $ 59 95 

Here's what people are saying about Disk Optimizer. 

"I feel this is essential software for anyone with a hard drive." 

-D. Sorenson, TEXACO, California 

"I find Disk Optimizer excellent. Disk access-even at 
4.77MHz-is much faster. And loading 100+ Fontasy 
fonts now takes seconds." 

-Elizabeth )oan Doyle, Indiana 

"Disk Optimizer... (has) found a permanent place on my 
software shelf." 
-Stephen R. Davis, PC MAGAZINE 

SoftLogic Solutions 



"I 



One Perimeter Road 
Manchester, NH 03103 

800-272-9900 
(603-627-9900 in NH) 



SoftLogic 

SOLUTIONS 



L 



Calltoday:800-272.9900 



j 



Circle 206 on Reader Service Card 



BYTE 1987 Extra Edition • Inside the IBM PCs 151 



APPLICATION INPUT DRIVERS 




Now You Can Have 386 POWER 
For As Little As... £ 1 7 O O 

Advanced 
Logic 
Research 
386/2 
Model 10 




1 6 Mhz Clock Speed (20 Mhz Optional) 

1 Mb Ram Installed, Exp. To 2mb On System bd. 

80 Nano-second 32 Bit Memory Chips 

1 Serial/ 1 Parallel Ports and Floppy Controller 

Setup Disk, Diagnostics, Manual Included 

1 .2 Mb Floppy Drive 

8 Expansion Slots 

Phoenix Bios 

Enhanced 101 Keyboard 



Or You Can Try Our 1 MHZ 286 
Computer For Only. . . $ 11 99 
Please Call For Info 
On This Outstanding Machine. 



Or You Can Look At These Other 
Superb Values: 

NEC Multispeed Laptop $1295 

NEC Multispeed EL (Backlit Display).... $1675 
ZENITH Z-181 Laptop.... $1599 

HP Laserjet II.... $1695 

COMPAQ Portable III Model 40.... $4175 

COMPAQ 386 Model 40. . . . $4549 

IBM PS/2.... Call. 

ALDUS PC Pagemaker.... $415 

XEROX Ventura Publisher.... $495 

NOVELL Network Starter Kit .... $2300 

Also Hard Drives, Monitors, Printers, 

Modems, Software Of All Kinds. 

Check Us Out!! 



W.P. Electronics, Inc. 

800-962-6778 outside Ca 619-320-6500 inCa. 

555 S. Palm Canyon Drive, Suite Al 10-342 

Palm Springs, Ca. 92264 

MC/VISA Accepted - 4% Charge 




DEC 


AX 




MOV 


C0MNUM,AX 


; Save com# 


MOV 


DX,AX 




MOV 


AX,087H 


; 1200 bps 


INT 


SERIAL 


; Let BIOS initialize 
; data-transfer rate 
; and stuff 


PUSH 


BX 




PUSH 


DX 




PUSH 


CS 




MOV 


AX,040H 


; point at BIOS data 
; segment 


MOV 


DS,AX 




MOV 


BX,DX 




SHL 


BX,1 




MOV 


DX,ZER0[BX] 


; Get port address at 
; 40:0or40:2 


POP 


DS 




MOV 


CP0RT,DX 


; Save it 


CLI 






MOV 


DX, OFFSET ISR 


; Stick the serial 
; interrupt handler 


MOV 


AH, 025H 


; in either 


MOV 


AL,00CH 


; Int 0CH 


SUB 


AL,BYTEPTRC0MNUM ;or0BH 


INT 


MSD0S 




IN 


AL,021H 


; Mask the interrupt 
; controller 


MOV 


AH,0EFH 




CMP 


C0MNUM,0 




JZ 


ISERIAL2 




MOV 


AH,0F7H 




ISERIAL2: 






MOV 


IMSK,AH 


; Save for later 


AND 


AL,AH 




OUT 


021H,AL 




MOV 


DX,CP0RT 


; Get port address 


ADD 


DX,3 


; line-control 
; register 


IN 


AL,DX 




AND 


AL,07FH 


; Make interrupt- 
; enable register 


OUT 


DX,AL 


; addressable 


SUB 


DX,2 


; Point at it 


MOV 


AL,1 


; Set the data- 
; available int 


OUT 


DX,AL 




ADD 


DX,3 


; modem-control 
; register 


MOV 


AL,09 


; Set it 


OUT 


DX,AL 




STI 






POP 


DX 




POP 


BX 




POP 


CX 




MOV 


AL,-1 


; mouse available. 


RET 






ISERIALENDP 






J 

QREADPACKET: 






QR1: 






CLI 




continued 



152 Inside the IBM PCs 



Circle 247 on Reader Service Card 




PROBLEM: There's just no easy way to move from one 
software program to another* 

THE SOFTLOGIC SOLUTION: Software Carousel™ 



Now you can keep up to 10 programs 
loaded and ready to run. 

Hard to believe, but some people are 
happy with just one kind of PC software. 
Well, this is not a product for them. 

But if you're someone who 
depends on many packages, all 
the time— someone who'd use 
several programs at once if you 
could, well now you can. With 
Software Carousel. 

Why call it "Software 
Carousel"? 

In some ways, Software 
Carousel works like the slide 
projector you're used to. You 
load a handful of pictures, view one at a 
time, then quickly switch to another. A 
simple idea, with powerful possibilities 
for computing. 

Here's how it works. When you start 
Software Carousel, just tell it how much 
memory you have, load your software and 
go to work. 

Need to crunch numbers? Switch to your 
spreadsheet. Need your word processor? 
Don't bother saving your spreadsheet file. 
Just whip over to your document and do 
your work. Snap back to your spreadsheet, 
and it's just like you left it. 

With up to ten different programs at your 
fingertips, you'll have instant access to your 
database, communications, spelling checker, 
spreadsheet, word processor, RAM resident 
utilities, languages, anything you like. 

Reach deep into expanded memory. 

This could be the best reason ever for 
owning an expanded memory card, like the 
Intel Above Board, ASTRAMpage, or any 

Circle 207 on Reader Service Card 



Word 
Star 

1-2-3 
BPI 


4X 


8X 


12X 


16X 


















■ 








Wi 

run 

load 

a file 

Test c( 


h Software Carousel 
ning in RAM, you can 
a program and retrieve 
3 up to 15 times faster. 
Dnducted on an I8M XT. 



card compatible with the L/I/M Extended 

Memory Standard. 
Software Carousel puts programs into 

this "high-end" memory for temporary 

storage when they're not in use. And 

switches them back out when 
you want them. It's fast, effic- 
ient, and easy. 

If you want, Software Car- 
ousel will even use your hard 
drive for swapping. Just allo- 
cate a portion for storage, and 
go to work. 

Sidekick, Superkey 

and Ready. All at the 

same time. 

You know what happens if 
you try loading two or more RAM resi- 
dent utilities at once. You 
get crashed keyboards, 
frozen screens, all kinds of 
interference between pro- 
grams fighting for control. 

With Software Carou- 
sel, you can have as many 
accessories and utilities on- 
tap as you want. Just load 
different ones in different 
Carousel partitions. Since 
they can't see each other, 
they can't fight. 



like Windows and TopView. 

Set it up once and Software Carousel 
remembers forever. Better still, Carousel 
will look for the programs you use most 
often and optimize them for quickest 
access. 

The way we see it, there are certain 
things you have a right to expect from your 
computer. Access to your software is one 
of them. At just $59.95 * a copy, Software 
Carousel is the best way to get it. 

See Software Carousel at better com- 
puter dealers everywhere. Or order today 
by calling 800-272-9900 (603-627-9900 
in NH), or mail the coupon below. If 
you find this product does not meet our 
advertised claims within 30 days of 
purchase we will arrange for a prompt 
refund. 



The easy way to 
maximize PC power. 

With all this power, you 
might think Software Car- 
ousel is complicated and 
difficult to use. Not so. Par- 
ticularly when you com- 
pare it to other programs 



^Software Carousel $ 59 95 * 



YES! Please send me . 



. copies of Software 



Carousel at just $59.95 * each (not copy protected). 

Name 

Company 

Address 

City 



. State/Zip_ 



Check Enclosed □ 

Card# 

Signature 



VISA □ MC □ AMEX □ 
Exp. Date 



SoftLogic Solutions, Inc. 
One Perimeter Road 
Manchester, NH 03103 
800-272-9900 
(603-627-9900 in NH) 



SoftLogic 

SOLUTIONS 

#64 

Call today: 800-272-9900 



BYTE 1987 Extra Edition 



'plus $5.00 shipping and handling. 

Inside the IBM PCs 153 



APPLICATION INPUT DRIVERS 



i 


NOP 








MOV 


AX,XACCUM 


; Get x accumulator 




MOV 


NEWX,AX 


; Move to new delta x 




MOV 


AX,YACCUM 


; Gety 




MOV 


NEW Y, AX 


; to new y 




SUB 


BX,BX 






MOV 


XACCUM,BX 


; Clear 




MOV 


YACCUM,BX 


; accumulators 


} 


STI 






QREXIT 


RET 







use, is to insert a section of code in the 
termination procedure at interrupt 22h. 
DOS passes control to this code (via a far 
jump) before it returns to a parent proce- 
dure. The only way I've been able to ob- 
tain control is by placing the address of 
my termination routine into OAh and OCh 
of the program prefix, in addition to INT 
22h. After the necessary cleaning up, the 
termination routine should exit by issuing 
a far jump to the original contents of ad- 
dresses OAh and OCh of the program seg- 
ment prefix. 



In addition to the basic input-driver de- 
sign, several other functions might be de- 
sirable. Different devices have different 
resolutions; it's up to your driver to scale 
the x,y coordinates into something con- 
sistent—for example, 100 dpi. One useful 
feature is nonlinear motion detection; 
with this feature, if you move the mouse 
quickly, the cursor will move a lot farther 
than if you move the mouse the same dis- 
tance slowly. 

You also might want to add a routine to 
determine the number of times a particu- 



lar button has been pressed since the last 
call to this function. Such a routine might 
be necessary if your program is too busy 
to process button-status information im- 
mediately. A possible addition to the in- 
terrupt handler compares the current but- 
ton-status information to BSTAT, and 
increments individual button-press 
counters appropriately before storing the 
current button-status information in 
BSTAT. 

Inevitably, you have to write software 
that interfaces directly to hardware (i.e., 
that is hardware-dependent). To retain 
your main application's hardware inde- 
pendence, you should separate the hard- 
ware-dependent code into modules or 
drivers that can be easily replaced. Al- 
though this involves considerable effort, 
you save a substantial amount of time in 
the long run. Furthermore, you are en- 
suring device independence, as well as 
preparing your applications program for 
continuing expandability. ■ 

REFERENCES 

1. Microsoft Mouse User's Guide. Red- 
mond, WA: Microsoft Corp., 1986.. PC 
Mouse Reference Manual 5.00. Santa 
Clara, CA: Mouse Systems Corp., June 
1986. 



Reliable, Cost Effective 
Solutions for Computerization 



Worlds smallest PC — and CMOS too! 

A Motherboard and 4 Expansion Cards in the 
Space of a Half-Height 5-1/4" Disk Drive! 



from $359 
(Qty I00, $287) 



3 WATTS! 

5 VOLT ONLY OPERATION 

± 1 2 V GENERATEDON BOARD 



SCSI BUS OPTION 
(HARD DISK, ETC) 



Little Board m /PC 



SPEAKER PORT 
KEYBOARD PORT 




POWERFUL 
V40CPU 

FLOPPY DISK CONTROLLER 

(3.575.25", 

360 K/720K, 1.2 MB) 

UP TO 128 K 
EPROM/RAM/NOVRAM 
BATTERY BACKED RT CLOCK 



PC COMPATIBLE 
ROM-BIOS 



MOUNTS ON A 
5.25" DRIVE 
(5.75WX1*) 



4 MODE VIDEO 

CONTROLLER 

OPTION 

FITS ENTIRELY 

WITHIN BOARD 

DIMENSIONS 



Distributors • Argentina: Factorial, S.A. 41-0018 • Australia: Current Solutions (613) 720-3298 • Austria: International Computer Applications GMBH 43-1/45 45 01-0" • Brazil: 
Computadores Compuleader (41) 262-4866 • Canada: Tri-M (604) 438-0028 • Donmark: Danbit (03) 66 20 20 • Italy: Microcom (6) 811-9406 • Finland: Symmetric OY 358-0-585- 
322 • France: Egal Plus (1) 4502-1800 • Germany, West: IST-Elektronlk Vertribes GmbH 089-611-6151 • Israel: Alpha Terminals, Ltd. (03) 49-16-95 • Spain: Hardware & Software 
204-2099 • Sweden: AS Akta (08) 54-20-20 • Switzerland: Thau Computer AG 41 1 740-41-05 • UK: Ambar Systems. Ltd, 0296 43551 1 • USA: Contact Ampro Computers Inc. 




154 Inside the IBM PCs • BYTE 1987 Extra Edition 



\ 



&' 



Pops Up, 

(fi 



Inserts 



TM 




%X 



S8& 



% 



% 



Searches 

and finds anything on disk 



Instantly! 



f 



"The most exciting and essential add-on since 

Sidekick."— Tim Bajarin, Creative Strategies 

You hear yourself thinking: '1 know it's here some- 
where. . .but where?" 

Now you can let GOfer go for it. 

Stay in the document and file you're working on. 

Pop up GOfer with one keystroke. Send him for an old 
memo, a phrase, a fact, a date, a number. 

He'll whiz through floppy and hard disks and zip 
back to you on the double. 

Then GOfer helps you use what he found. Insert it. 
Or print it. Or store it. Instantly. 

GOfer needs no housekeeping, no indexing, no file 
conversion. With GOfer, nothing gets lost. 



Anatomy of a GOfer 

• works with IBM PC's & compatibles and PS/2's. • works 
with all leading word processors & utilities. • searches are 
extremely fast and free-form (NO INDEXING), based on 
simple AND/OR/NOT (Boolean) logic, and "how close?" 
parameter. • requires 79KofRAM. • not copy-protected. 



$7$?8S3 $5 V/ .V/ 5 special introductory price 

Get your GOfer 

Now at dealers nationwide or order direct by calling 
1-800-828-6293 (in NY, 716/377-0130) 
C.O.D.'s and credit cards welcome 
30-day money-back guarantee 



GOfer makes molehills out of mountains. 



©1987 Microlytics, Inc. 



M icrolytJCS, Inc. 300 Main St., Suite 538, East Rochester, NY 14445 GOfer™ is the Text Finder™ utility from Microlytics™, the makers of W>rd Finder™ 

Circle 135 on Reader Service Card 



"IRjfpedTU 

OFPAGESTkYINGi) 



' I'''': 



JANUARY 



6^ 



^Tl 12 I) 14 15 l6 



«**§&& -FEBRUARY 
m¥»T 



10 **ii «■ xz 



24 


i7 : ::;;r 18 

% t 


• 

'4 


27 28 29 JO 






JULY 

I 2 

1 ■".■;■;■ ..,,.' : 

6 "-'7 8 9 


^ 




5 


10 n 


12 


M 14 <5 16 


n 18 
JI 25 


26 


27 28 29 j0 



7_^ 

i4V--"_ J.Sj 16 8U 17 18 



^/^X^S 36 



?^y 



AUGUST 



•{hAt/far;* 



7 i 8 

'4 ' .,*5 



u / iX it 



"'• ;! T6:;. 17. : 18 ■ ! 9 



wffM«»).: 



2l' 22 2? 24 

28 29 ?o }i 



26 27 



MARCH 



1 



t? 4 






8; 9 10] it! m 



1^ n l6 "-"'" l? l8 ) ' 9 - 

26 






tori 

2J-*d 1 ^^2 : ""^j 24 ** 



S. 27 28 29: JO JI 




l8 I IQ 20 ^ 21 

25 26 27 



29 JO 

■■■■■■MM*''' 



Choosing the wrong database management 
software can be like doing time. 

Ask Harry Viens, the executive vice- 
president of an advertising agency 

Using a copy of dBASE,® he spent a year 
trying to learn its programming language to 
develop applications on the agency's PC to track 
income against forecasts. 

But with dBASE, all he ended up with was 
wishing he'd used R:BASE® System V, the data- 
base software you don't have to be a program- 
mer to use. 

"AFTER USING dBASE 
I HAD TO BE DEPROGRAMMED!' 

Viens knew his mini-computer was fine 
for bookkeeping, but wasn't capable of turning 
around management reports - critical for 

156 Inside the IBM PCs • BYTE 1987 Extra Edition 



making quick decisions. 

"We've got to make decisions in real time, 
not wait a couple of months to find out what's 
happening today," Viens said. 

"I tried to build this dBASE application 
nights, weekends and during holes in my sched- 
ule. But almost a year later, the miserable thing 
still wasn't done," Viens told us. 

"The language is unnatural. I guess 
some people love writing code. For me, that's like 
trying to mow the lawn with nail clippers." 

"I SAW, AND I BELIEVED." 

Being an advertising person, Viens actually 
reads ads. He saw our claim that you don't 
have to be a programmer to use R:BASE, and 
bought it. 

Because of our EXPRESS System, he was 



rdughALot 

RGUREOUTdBASEr 



- Harry Viens, R:BASE System V user. 




able to build the kind of application you'd expect 
in a custom program from a professional pro- 
grammer. AH without having to write one line 
of code. 

"It took me just three days to do it working 
part-time," Harry said. So now he can track his 
forecasts and break them out by the account 
person who made them. 

"R.-BASE System V is an amazing product. 
Despite its power you never seem to get trapped 
in a comer you can't get out of." 

CALL 1-800-624-0810, DEPT. BY1087 
FOR A TRIAL PACK, 

Lots of people like Harry Viens have been 
saving time with R:BASE System V. 

Discover the difference R:BASE can make. 
Call for our fully- functional Trial Pack. It's just 

Circle 138 on Reader Service Card 



$19.95 plus shipping for the 5.25-inch Trial Pack. 
Or just $24.95 plus shipping for the 3.5-inch 
Trial Pack. 

From Alaska and Canada, call 1-206-867- 
1800, Department BY1087. 

We can also put you in touch with an auth- 
orized Microrim dealer who w ill tak e you through 
the software firsthand. 
It will be time well-spent. 

R:BASE 
SYSTEM V 

MICRORIM 

InfoWorld's Overall MS-DOS Software Product of trie 'Year. 

The 5.25-inch formats run on 1 B M PC. X T. AT a n d 100% compatibles, a n d on all major LANS, with n o additional cost 
for extra users attached to the server. The 3.5-inch formats run on IBM PS/2 and other 100% MS-DOS compatibles. 
Trademarks/Owners: Microrim, R:BASE/Microrim, Inc.; IBM, PS/2/International Business Machines, Inc.; dBASE/ 
Ashton-Tate Corporation; InfoWorld/CW Communications, Inc. © 1987 Microrim. 

B Y T E 1987 Extra Edition • Inside the IBM PCs 157 





CLEO is your SNA or BSC Gateway 



Remote Sites Communication 

Whatever your industry, your remote 
computers need to share information with 
your mainframe. Or, they need to exchange 
data with other remotes. In either case, you 
need a total solution at the remote sites. You 
need software, hardware interfaces and 
modems that all work together smoothly. 
You need CLEO! 

CLEO software products allow micro- 
computers to communicate with mini- 
computers and mainframes, and to emulate 
their workstations. Since 1981, CLEO has 
providedremote communications between 
micros and mainframes for the automotive, 
insurance, medical and banking industries. 
Today over 44,000 CLEO users worldwide 
are running on all ma jorbrands of micro- 
processors. The greatest number of these 
users run CLEO software on IBM Personal 
Computers andNETBIOS LANs. 



Complete 
Software/Hardware Package 

Every CLEO package contains all the soft- 
ware and hardware accessories needed at the 
remote site. Your selected CLEO SNA or BSC 
software is packaged with 1) an internal 
modem card for dial-up applications, or 2) 
an interface card and cable for use with your 
existing modem. There's no waiting for non- 
CLEO add-ons. And, you get prompt, single- 
source service. 




Package prices 

range from $795.00 for 

most stand-alone packages, up to $ 2 ,995 . 00 

for the 32-user SNA gateway. 



Call us today to discuss 
your application. 

CLEO Software 

1639 North Alpine Rd. 
Rockford,IL 61107 
Telex 703639 

Headquarters: 

USA: 1-800/233-2536 

Illinois: 1-800/422-2536 
International: 815/397-8110 

Sales and Distribution: 

Benelux, Scandinavia: 31 (71) 899202 
Canada, East: 800/361-3185 
Canada, West: 800/361-1210 
Canada, Montreal: 514/737-3631 
Colombia, S.A.: 12875492 
Denmark: 451 628300 
Italy: (0331) 634 562 
Mexico City: 203-0444 

CLEO 



CLEO and 3780Plus arc registered trademarks of CLEO Sof twarc 
IBM is a registered trademark of International Business 
Machines Corporation. 




INSIDE THE IBM PCs 



Increase your productivity by adding 
simple assembly language programs to DOS batch files 



Better Batch Files Through 
Assembly Language 

William J, Claff 



One simple and easy-to-use 
tool in PC-DOS for increasing 
productivity is the batch file, 
a text file that executes its con- 
tents as if you had typed in the 
individual lines from the key- 
board. This article will show 
you how to write more versa- 
tile batch files by adding small 
assembly language programs 
that become new batch-file 
"commands." These pro- 
grams let you influence what 
the batch file does while the 
file is executing. Using the 
programs, you can write batch 
files that recover from errors 
and let the user interact with 
many programs through a 
menu system. 

You don't need to be famil- 
iar with assembly language to 
understand how to use these 
programs in batch files. How- 
ever, if you are already famil- 
iar with assembly language, 
you will be able to modify the 
programs and write similar 
ones suited to your specific 
needs. [Editor's note: EX- 
KEY. BAT, KEYIN.ASM, 10- 
PATH.ASM, ONEKEY.ASM, 
and STRING. ASM are avail- 
able on disk, in print, and on 
BIX; see the insert card fol- 
lowing page 208 for details. 
Listings are also available on 
BYTEnet; see page 4. Assembled ver- 
sions of the files are available for IBM 
PC-compatible computers on BIX and 
BYTEnet only.] 

The Missing Link 

In their simplest form, batch files save 
typing: COMMAND.COM reads char- 
acters from the batch file as if they were 
keyboard inputs. (C0MMAND.COM is 
the command processor with which you 
interact when you type in a command at 




the A> prompt.) With the use of replace- 
able parameters (variables within a batch 
file whose values you type in after the 
batch-file name) and the batch-file-ori- 
ented PC-DOS resident commands ECHO, 
FOR, GOTO, IF, PAUSE, REM, and SHIFT, 
batch files have the power of a simple 
programming language. 

A batch file cannot read the keyboard 
and assign the value read into a variable. 
The PAUSE command will wait for a key- 
stroke, but the batch file has no way of 



knowing which key you 
pressed. You can remedy this 
deficiency by using Debug to 
create the following program, 
which I call "the missing 
link." Just type in everything 
that is italicized, pressing 
Enter at the end of each line. 
The value xxxx is not impor- 
tant and will vary depending 
on your computer's config- 
uration. This recipe creates 
KEY.COM, an 8-byte assem- 
bly language program. 

k>DEBUG 

-A 

xxxx: 0100 MOV AH, 

xxxx: 0102 INTl6h 

xxxx:010AMOVAH,4C 

xxxx : 0106 INT 21h 

xxxx: 0108 

-RCX 

CX 0000 

8 

-NKEY.COM 

-W 

Writing 0008 bytes 

-Q 

A> 

KEY uses the BIOS's keyboard 
function to wait for a key- 
stroke. When you press a key, 
this program reads the next 
keystroke (by executing INT 
I6h) and ends, returning its 
ASCII value by executing the DOS func- 
tion to terminate a process (DOS function 

continued 

William J. Claff (7 Roberts Rd. , Welles- 
ley, MA 0218 1) is a senior software engi- 
neer with SoftSet Associates Inc. He 
holds an M.S. in applied mathematics 
from Harvard University, publishes an 
IBM technical newsletter, and is the lead- 
er of the IBM PC Technical Subgroup of 
the Boston Computer Society. 



Illustration: Robert Pryor © 1987 



BYTE 1987 Extra Edition • Inside the IBM PCs 159 



BETTER BATCH FILES 



Assembling KEYIN 



All the programs in this article are 
.COM files. To assemble them and 
produce a usable program, I use a batch 
file called MAKECOM.BAT. [Editor's 
note: MAKECOM.BAT is available on 
disk, in print, and on BIX; see the insert 
card following page 208. It is also avail- 
able on BYTEnet; see page 4.] At a 
minimum, a MAKECOM.BAT file 
should contain: 



masm#l; 
link %1; 
exe2binilil.com 

To assemble KEYIN. ASM, enter 

make com keyin 

Ignore the linker's stack segment 
message; .COM files can't have one. 



Listing 1: Using KEY in batch files. This file, EXKEY.BAT, uses KEY to get a 
keystroke and ERRORLEVEL to hold the returned value. The KEYIN program, a 
more sophisticated version of 'KEY, is defined in listing 2. 

ECHO OFF 

: prompt - 

CLS 

ECHO Press 1 for program A 

ECHO Press 2 for program B 

ECHO Press Esc to exit to DOS 

:getkey 

key 

IF ERRORLEVEL 49 IF NOT ERRORLEVEL 50 GOTO a 

IF ERRORLEVEL 50 IF NOT ERRORLEVEL 51 GOTO b 

IF ERRORLEVEL 21 IF NOT ERRORLEVEL 28 GOTO exit 

GOTO getkey 

:a 

ECHO Execute program A 

PAUSE 

GOTO prompt 

:b 

ECHO Execute program B 

PAUSE 

GOTO prompt 

:exit 



Listing 2: 


KEYIN. ASM. This program reads the next keystroke and returns its 


ASCII value in the ERRORLEVEL variable. 




CODE 


SEGMENT 






ASSUME CS:C0DE 


;<- ASSUMES FOR .COM FILE 




ASSUME DS:C0DE 






ASSUME ES:C0DE 






ASSUME SS:CODE 






ORG 00100H 


; <- REQUIRED FOR . COM FILE 


IP 


LABEL NEAR 
JMP START 


I ( USED ON END STATEMENT ) 


CURSOR 


DW ? 




START 


LABEL NEAR 






MOV AH, 3 


;<- GET CURSOR MODE 




INT 010H 






CMP CX,00067H 


;<- CHECK FOR BUG 




JNE NOBUG 






MOV CX,00607H 




NOBUG 


LABEL NEAR 

MOV CURSOR, CX 






MOV AH,1 


; <- TURN CURSOR OFF 




MOV CX,02000H 






INT 010H 


continued 



4C hexadecimal). [Editor's note: To call 
a DOS function, put the function number 
in the AH register— usually with a MOV 
AH, < value > instruction— then call inter- 
rupt 21h with INT 21h.] The batch pro- 
gram that called KEY can test this error 
level by using the IF command and the 
special keyword ERRORLEVEL. 

The batch file EXKEY.BAT (see list- 
ing 1) shows how to use KEY to implement 
a menu. (Note that once you compile and 
link the file < name > . ASM, you refer to 
it as a command named <name>.) The 
heart of this batch file is the KEY program 
and the IF commands .\ The IF ERROR- 
LEVEL nn command is true when the 
error level is greater than or equal to nn, 
where nn is a number between and 255 . 
Stringing together IF commands has the 
effect of a logical AND operation. In the 
first IF statement, if the error level is 
greater than or equal to 49 and not greater 
than or equal to 50, then the error level 
must be equal to 49, the ASCII value for 
1 . The ASCII values for 1 , 2, and Escape 
are 49, 50, and 27, respectively. 

KEY.COM' s chief virtue is that you 
can easily construct it without an assem- 
bler. The limitations of KEY are that it 
does not support function keys and is 
cumbersome to use. 

KEYIN 

KEYIN. ASM (see listing 2) is a grown- 
up version of KEY (see also the text box 
"Assembling KEYIN" above). KEYIN 
flushes the keystroke buffer to eliminate 
stray keystrokes, turns off the cursor, 
supports function keys, and converts low- 
ercase letters to uppercase. KEYIN works 
like KEY, except that you can test for func- 
tion keys, and you don't have to do extra 
tests for lowercase responses. KEYIN still 
requires that you supply the ASCII value 
of the character in the IF statement, 
which is tedious. The value returned for a 
function key is the scan code with the 
high bit turned on (see table 1). 

KEYIN, like all programs in this article, 
starts executing at the label IP. Its first 
step is to save the current cursor (this is 
slightly complicated by a bug in the earli- 
est IBM ROM BIOS). 

Next, it flushes the keyboard of any 
pending keystrokes and waits for a key- 
stroke. I have previously decided that I 
will mark non-ASCII characters by set- 
ting the high bit of the keystroke's scan 
code. KEYIN detects non- ASCII values by 
checking for a zero value in the AL regis- 
ter. If it finds one, it sets the high bit by 
ORing it with 80 hexadecimal. It then 
converts ASCII alphabetic values to up- 
percase, restores the cursor, arjd exits to 
DOS with the scan code in the error-level 
variable. 

continued 



160 Inside the IBM PCs • BYTE 1987 Extra Edition 



Don't wait on line for 
your career to develop! 

If microcomputing is your business, BYTE has to be 
your technology source. Make a career move now. Join 
your peers on the leading edge of microcomputer tech- 
nology. Subscribe to BYTE at our low price intro- 
ductory offer: 

Save $20 off the newsstand price — 12 issues at $22 
instead of $42. If you're not satisfied write "cancel" 
on your invoice and keep the first issue free. 

□U.S. DCanada/Mexico DEurope-Air Delivery □ Worldwide-Surface Delivery 

$22.00 (1 yr.) $25.00 U.S. (1 yr.) $69.00 U.S. (1 yr.) $37.00 U.S. (1 yr.) 




□ Bill me (North America only) 

□ Payment enclosed (U.S. Funds drawn 
on a U.S. bank only) 

□ Charge to my DVISA □ MasterCard 

Card # Expires 

Signature 



Name. 



Address . 



City/State . 



Code . 



Country 

Please allow 6-8 weeks for processing your subscription 



For direct ordering call toll free weekdays 9:00am-5:00pm 
EST: 1 800 423-8272 (in New Jersey: 1 800 367-0218). 47Ibnu-5 



BYTE 8 



ss 



BUSINESS REPLY MAIL 

FIRST CLASS MAIL PERMIT NO. 201 PISCATAWAY NJ 



POSTAGE WILL BE PAID BY ADDRESSEE 



BYTE 



Subscription Dept. 

P.O. Box 6807 

Piscataway, NJ 08855-9940 



NO POSTAGE 

NECESSARY 

IF MAILED 

IN THE 

UNITED STATES 




Imlii lili ilinlli illiililiililii ill li ill ii illi il 



Create dBASE* Reports in Half the Time, 
Without Programming, or Your Money Back! 



"The [time] savings we gained with R&R were remarkable." 



"The consummate dBASE report writer." 



". . . a powerful tool that's executed beautifully. ..." 



"Constructing a report layout with R&R is easy and quick. . . . 



". . . run, don't walk, to the nearest phone and place your order. 



SIMPLE 
REPORTS 



Superwlmr Lilting 

for 

Lrtevin. Asseibly Plant 




Info World, 5/25/87 



PC World, 3/87 



PC Magazine, 1/13/87 



Business Software, 2/87 



PC Week, 11/11/86 



CUSTOMER. DBF 






ACCTREC . 




COMPLEX 
REPORTS 



A proven timesaver. 

R&R users say they can create 
reports in half the time or less, com- 
pared with programming in dBASE. 
So can you. 

More flexibility than youll ever need. 

Relate and report from up to 10 files 
at once using one-to-one and one-to 
many relations. Place free-form text 
and fields anywhere. Calculate new 
fields using more than 70 functions. 

Eight sort levels. Eight levels of record 
grouping. Page and group headers and 
footers. Totals, subtotals. Memo field 
support including query. Use bold, 
underline , italics, combinations , and 
different fonts. Hundreds of other 
features. 

The ease of use for fast results. 

Lotus®-like commands. Plain English 
query. Automatic trim. Standard field 
formats such as currency, commas, 
and word-wrap. 



*On 5.25" diskettes. With 5.25" AND 3.5" 
diskettes, $165 for R&R and $55 for Module. 

Circle 5 Son Reader Service Card 



But what you really want is results. 
Fast. And R&R quickly delivers reports 
like those shown here. Complex 
reports such as multi-page invoices. 
Simple reports such as employee list- 
ings. (Actually the "simple report" 
shown here is not so simple without 
R&R.) Even form letters are just reports 
created with R&R's relational merge 
feature. 

Relate and Report, then rest and relax 
—with R&R. 




DUNNWRDS.DBF 



FORM 
LETTERS 



Only $149!* 



Satisfaction guaranteed. 

Try R&R. If you aren't satisfied for 
any reason, return it within 30 days 
for a full refund (if purchased directly 
from Concentric or a Concentric 
Authorized Reseller). 



For the name of your nearest dealer, 
or to order, call: 

800-325-9035 

In Mass., call 617-366-1122. 

Major credit cards, checks, COD, 
and POs (from major corporations 
and institutions) accepted. Add $3 
shipping, $2 if COD, 5% tax in Mass. 

R&R works with dBASE III®, 
III PLUS®, Quicksilver™, and other 
dBASE-file-compatible products. 
Clipper™ and FoxBASE+™ Module 
$49.95* additional. Runtime included 
with unlimited use license. 

Another timesaving tool from the 
authors of 1-2-3® Report Writer™. 

Concentric Data Systems, Inc. 

18 Lyman Street, PO Box 4063 

Westboro, MA 01581-4063 




fordBASE 



Trademarks: dBASE, dBASE III. dBASE III PLUS by Ashton-Tate. Lotus. 1-2-3 Report Writer by Lotus Development 
Corporation. Quicksilver by WordTech Systems, Inc. FoxBASE+ by Fox Software. Clipper by Nantucket Corporation. 
R&R Relational Report Writer by Concentric Data Systems. Inc. 

BYTE1987 Extra Edition • Inside the IBM PCs 161 



BETTER BATCH FILES 



FLUSH 


LABEL 


NEAR 


; <- FLUSH THE KEYBOARD BUFFER 




MOV 


AH,1 






INT 


016H 






JZ 


FLUSHED 






MOV 


AH,0 






INT 


016H 






JMP 


FLUSH 




FLUSHED 


LABEL 


NEAR 






MOV 


AH,0 


; <- WAIT FOR A KEYSTROKE 




INT 


016H 






OR 


AL,AL 






JNZ 


REGULAR 






MOV 


AL,AH 


; <- FUNCTION AND OTHER SPECIAL KEYS 




OR 


AL,10000000B 


; TURN ON HIGH BIT 




JMP 


SHORT DONE 




REGULAR 


LABEL 


NEAR 


;<- REGULAR KEY 




CMP 


AL, 'a' 


; CONVERT TO UPPERCASE 




JB 


DONE 






CMP 


AL,'z' 






JA 


DONE 






ADD 


AL/A'-'a' 




DONE 


LABEL 


NEAR 






PUSH 


AX 






MOV 


AH,1 






MOV 


CX, CURSOR 






INT 


OlOH 






POP 


AX 




EXIT 


LABEL 


NEAR 


;<-EXIT 




MOV 


AH,04CH 






INT 


021H 




CODE 


ENDS 








END 


IP 


;<- REQUIRED FOR .COM FILE 











Table 1: Scan codes as returned by the ROM BIOS. 




Scan code 


Keystroke 


Scan code 


Keystroke 


3 


NUL 


82 


Insert 


15 


Left arrow 


83 


Delete 


16-25 


Alt-Q.W.E.R.T.Y.UJ.O.P 


84-93 


F1 1 -F20 (Shit t-F1 -F1 0) 


30-38 


AltAS.D.F.G.H.J.K.L 


94-103 


F21 -F30 (Ctrl-F1 -F1 0) 


44-50 


Alt-Z 1 X,C,V I B,N 1 M 


104-113 


F31-F40(Alt-F1-F10) 


59-68 


F1-F10 


114 


Ctrl-PrtSc 


71 


Home 


115 


Ctrl-Left arrow 


72 


Up arrow 


116 


Ctrl-Right arrow 


73 


PageUp 


117 


Ctrl-End 


75 


Left arrow 


118 


Ctrl-PgDn 


77 


Right arrow 


119 


Ctrl-Home 


79 


End 


120-131 


Alt-1 ,2,3,4,5,6,7,8,9, 


80 


Down arrow 




0,-,= 


81 


PageDown 


132 


Ctrl-PgUp 



Listing 3: Using the error level as a success/failure flag. This program, 
TOPATH. ASM, is called with a single argument, a path name {e.g., TOPATH 
A: \DATA\ CALC), and it attempts to change the current directory to the one 
given by the argument. It returns a zero value if the directory change is 
successful, and a nonzero value if it is not. 



CODE 



SEGMENT 




ASSUME 


CS:C0DE 


ASSUME 


DS:C0DE 


ASSUME 


ES:C0DE 


ASSUME 


SS:C0DE 



j <- ASSUMES FOR . COM FILE 



continued 



Changing Directories 

TOPATH. ASM (see listing 3) is an exam- 
ple of using the error-level variable as a 
success/failure flag. The TOPATH com- 
mand takes a path as its only parameter. 
The program does a DOS change-direc- 
tory function (DOS function 3Bh) with 
this path, indicating success with a zero 
error-level value or failure with a nonzero 
error-level value. When you use it with 
the STRING program in listing 5, you can 
use TOPATH to let the user enter a new 
path name and, depending on the result, 
either begin using the path name or re- 
cover from an error. 

To understand how TOPATH works, you 
must be familiar with some of the internal 
workings of COMMAND.COM. COM- 
MAND. COM places all the characters to 
the right of a command in an area of the 
program segment prefix (PS?) called the 
command tail. The command tail is 1 
byte long, followed by the characters 
themselves and a carriage return (which 
is not included in the length value). TO- 
PATH uses the command-tail length as an 
index into the command tail to change the 
carriage return to a NUL (ASCII value 
0). This is necessary because the DOS 
change-directory function expects an 
ASCIIZ string. (An ASCIIZ string is a 
string that ends with a NUL.) Next, the 
program scans forward from the begin- 
ning of the command tail to the first 
nonblank character. Finally, TOPATH exe- 
cutes the DOS change-directory function 
(function 3Bh) and returns a flag indicat- 
ing success (zero value) or failure (non- 
zero value) in the error-level variable. 

The Environment 

The environment is an area of memory 
maintained by COMMAND.COM that 
contains environment variables that hold 
string values. Strings are placed into and 
deleted from the environment using the 
SET command. The PATH and PROMPT 
commands are shorthand versions of SET 
(i.e., you could also use SET PATH= . . .)• 
A typical environment contains the vari- 
ables COMSPEC, PATH, and PROMPT. These 
variables have special meaning to COM- 
MAND. COM itself. Other programs can 
use environment variables to get informa- 
tion from the user. For example, the 
Microsoft Macro Assembler uses the en- 
vironment variable INCLUDE to locate in- 
clude files that are not on the current 
directory. 

A powerful additional feature of the 
batch processor was undocumented until 
PC-DOS 3.3. When the batch-file pro- 
cessor sees the name of an environment 
variable between percent signs, it re- 
places the name and the surrounding per- 
cent signs with the value of that environ- 

continued 



162 Inside the IBM PCs • BYTE 1987 Extra Edition 




ADVANCE TO THE 
NEXT LEVEL 



Professional Image Board 512 x 256 

Just plug the PIB board into your IBM PC/XT/AT or compatible which 
allowsan ordinary home video camera (color or B/W) or home VCR to be 
plugged into your system. Now, live, fast action images can be instantly 
captured and frozen (1/30 second) in a full 32,768 colors. The frozen 
picture is as close to television quality as can be, digitized by the software 
package we bundle with PIB board. This software package HALOVISION 
Written by MEDIA CYBERNETICS INC. allows you to edit, cut, paste, 
copy, rotate, brush, zoom, scale, add text (21 text fonts) free hand draw, 
print, etc. . . The PIB is also compatible with the new IBM PS/2 Model 30 
and the image can be displayed on IBM's new analog color monitor. Or 
you can convert the image to EGA display mode. The image can be stored 
on floppy or hard disk and transmitted to any remote location in the world 
via modem. 



Professional Image Board Plus 512 x 512 

Same features as the P IB 5 1 2 x 256 with resolution enhanced to 5 1 2 x 51 2 
pixels. 

ATI-8/16MHz System Board 

This system board runs at 16MHz, 1 wait state Norton 3.0 rating is 18.7 
(Compaq deskpro 386 and the new IBM PS/2 Model 80 rating is 18.00 to 
18.7). With a fraction of the cost of 386 systems, you can upgrade your 286 
system to 386 system performance by replacing your existing 286 system 
board. Almost all existing add-on cards still work with this system board. 
This system boards standard feature is a 1MB high speed memory also 
switchable to 8MHz by keyboard when necessary. 



ATI-6/12 System 286 



The ATI-6/12 SYSTEM 286 runs at an amazing speed of 12MHz. That's 20% 
faster than new IBM PS/2 model 50 and 60. To protect your existing 
software investment, we build-in a normal speed 6MHz, a simple 
combination of keystrokes will change the speed of the system at any time 
when necessary. 6/8MHz, 6/10MHz zero wait state and 1 wait state systems 
also available. Runs all existing software written for IBM PC/XT/AT, 
including new OS/2 development software. 



ATronics 

1 International Inc. 



7ik T>eliwi /4dv4*£*d *7e^«5/*^ 

1 830 McCandless Dr. Milpitas CA. 95035 USA 

(108) 9-12-331-1 TLX: 510-600-6093 FAX: (108) 9-12-1 67-1 



•IBM, PC/XT/AT. PS/2, OS/2, is a trademark of International Business Machines, Inc. 
COMPAQ DESKPR0386, is a trademark of Compaq Inc. 
ATRONICS is a trademark of Atronics International, Inc. 

Circle 24 on Reader Service Card 



Southern California Contact: CNT Marketing 

16580 Harbor Blvd., Ste. J, Fountain Valley, CA 92780 (714) 839-3724 

BYTE 1987 Extra Edition • Inside the IBM PCs 163 



BETTER BATCH FILES 





ORG 


00080H 


j <- LENGTH OF COMMAND TAIL 


TAILLEN 


DB 


? 






ORG 


00081H - 


;<- COMMAND TAIL 


TAIL 


DB 


127DUP(?) 






org' 


OOIOOH 


; <- REQUIRED FOR .COM FILE 


IP 


LABEL 


NEAR 


; (USED ON END STATEMENT) 




XOR 


BH,BH 


; <- PUT NUL AT END OF COMMAND TAIL 




MOV 


BL, TAILLEN 






MOV 


TAIL[BX],OOOH 






MOV 


AL, 1 » 


; <- SCAN FORWARD ACROSS BLANKS 




MOV 


CX,BX 






MOV 


DI, OFFSET TAIL 






CLD 








REPE 


SCAS TAIL[DI] 






DEC 


DI 






MOV 


AH,03BH 


; <- CHANGE DIRECTORY 




MOV 


DX,DI 






INT 


021H 






JC 


EXIT 






XOR 


AL,AL 




EXIT 


LABEL 


NEAR 


;<-EXIT 




MOV 


AH,04CH 


; 0=OK OTHERWISE=ERROR NUMBER 




INT 


021H 




CODE 


ENDS 








END 


IP 


i <- REQUIRED FOR .COM FILE 



Listing 4: Reading a keystroke into a previously defined environment variable 


using the program ONEKEY.ASM. When a batch file executes ONEKEY, the 


program 


waits for you to press a key, then transfers the result to the 


environment variable K. 

. nTTumrv ccviiunPMTC 




i 

ENV 


SEGMENT 


AT OFFFFH 


;<- THE ENVIRONMENT 


STRINGS 


DB 


7 




ENV 


ENDS 






MEM 


SEGMENT 


AT OFFFFH 


;<- A MEMORY BLOCK 


MEMTYPE 


DB 


2 




MEMID 


DW 


? 




MEMSIZE 


DW 


1 




MEM 


ENDS 






PSP 


SEGMENT 


AT OFFFFH 


;<- COMMAND.COM 




ORG 


0002CH 


; <- ENVIRONMENT SEGMENT 


ENVSEG 


DW 


? 




PSP 


ENDS 








.---QQDjr SEGMEN T 




CODE 


SEGMENT 








ASSUME 


CS:CODE 


; <- ASSUMES FOR .COM FILE 




ASSUME 


DS:CODE 






ASSUME 


ES:CODE 






ASSUME 


SS:CODE 






ORG 


00016H 


; <- COMMAND. COM SEGMENT 


CMDSEG 


DW 


? 






ORG 


OOIOOH 


; <- REQUIRED FOR .COM FILE 


IP 


LABEL 


NEAR 


i (USED ON END STATEMENT) 




JMP 


START 




CURSOR 


DW 


f 




START 


LABEL 


NEAR 




;======= 


====TURN CURSOR OFF 






MOV 


AH,3 


;<- GET CURSOR MODE 




INT 


OlOH 






CMP 


CX,00067H 


;<- CHECK FOR BUG 




JNE 


NOBUG 






MOV 


CX,00607H 




NOBUG 


LABEL 


NEAR 






MOV 


CURSOR,CX 






MOV 


AH,1 


;<- TURN CURSOR OFF 


* 


MOV 


CX,02000H 






INT 


OlOH 


continued 



ment variable. [Editor's note: The author 
has told us that he has had reports that 
this feature does not work under certain 
circumstances with PC-DOS 3.0; he 
added that he has never had any prob- 
lems with it using PC-DOS 3. 1 or later.] 
Consider the line 

PATH #PATH#; C:\MASM 

If the current path is C : \ DOS, this will be 
expanded to 

PATH C:\DOS; C:\MASM 

In this case, you can append the directory 
C : \ MASM to the path without knowing the 
current path. This expansion takes place 
only within batch files. 

This feature is useful, but it has several 
problems. One is that there are no DOS 
functions to get strings out of or into the 
environment. This is because the envi- 
ronment is not a feature of DOS, but of 
COMMAND.COM. I view COM- 
MAND .COM as the user interface to 
DOS and not as a part of the operating 
system itself. (C0MMAND.COM can 
be replaced with a properly written sub- 
stitute by adding a line beginning SHELL= 
in the file CONFIG.SYS.) For most peo- 
ple, the distinction between DOS and 
C0MMAND.COM is lost in practice. 
Realizing that C0MMAND.COM is not 
DOS helps in understanding why no DOS 
functions relate to the environment. 

Two serious difficulties arise from the 
add-on nature of the C0MMAND.COM 
user interface. One is that the environ- 
ment is considered read-only. How a pro- 
gram gets access to anything other than 
its read-only copy of the true environ- 
ment is undocumented. Even worse, the 
environment cannot always be expanded 
to hold additional or longer strings. 

There are two well-known solutions to 
the problem of limited environment size. 
The first is to start with a larger environ- 
ment. Many computer magazines have 
published articles and tips explaining 
documented and undocumented ways to 
increase the initial environment size (see 
the bibliography for two environment-re- 
lated articles). Unfortunately, this is not 
a complete solution. When COM- 
MAND .COM makes a copy of the envi- 
ronment, it discards any excess space (an 
action that is sensible in relation to a read- 
only copy). This compression also takes 
place when C0MMAND.COM invokes 
itself in a nested batch file using the COM- 
MAND /C construct. Therefore, the effect 
of the larger initial environment is lost in 
a nested batch file. 

The second solution is to reserve space 
in the root environment for any variables 

continued 



164 Inside the IBM PCs • B Y T E 1987 Extra Edition 





FULL BLOWN 
PERFORMANCE. 



ie Micro Express line of IBM*compatibte personal computers isi 
just a bare essentials copy of the industry leader, but a powerful 
system that actually outperforms the "big name** brand* 



NEW! 

ORTABLE! 




ME 386 

□ 16 MHz 80386 microprocessor 

□ 512K 32-bit memory on main board 

□ Two 32-bit expansion slots 

□ CMOS clock /calendar circuit 

□ Socket for 80387 math co-processor 

□ Floppy/ hard disk controller 
DJ.2MB floppy disk $ 1 O QQ 

ME 286 

□ 6/10 MHz 80286 microprocessor 
(12 MHz option) 

□ 640K memory on main board 
(upgradable to 1 MB) 

□ 8 I/O expansion slots 

□ CMOS clock/calendar circuit 

□ 80287 math co-processor (optional) 

□ Floppy/hard disk controller 

□ 1.2 MB floppy disk drive 

□ AT style keyboard $ Q QQ 



IBM/ AT/XT are trademarks of 
International Business Machines Corp. 

© 1987 Micro Express 



ME V20(ATjr) 

□ NEC V20 8 MHz CPU 

□ 640K with "0" wait state on 
mother board - 

□ Eight expansion slots 

□ Socket for 8087-2 math co-processor 

□ LED indicator for turbo mode 

□ Up to three times faster 
than the IBM XT® 

□ AT style keyboard (RT style optional) 

□ 360K floppy disk drive 

□ Serial (RS232) port 

□ Parallel (printer) port and game port 

□ Real time clock/calendar 
with battery back-up 

□ Enhanced graphics card 

□ Enhanced graphic's monitor 

$999 



The Road Runner 

□ 6/10 MHz 80286 processor 

□ 1 MB memory with "0" wait state 

□ New Super Twist LCD with Backlit 
and Reverse; 640 * 200 dots; 

80 * 25 characters 

□ Monochrome/ Color graphics card 
for external monitor 

□ 6 expansion slots 

□ Floppy/ hard disk controller 

□ Serial / printer/ clock-calendar 

□ 1.2 MB floppy disk drive 

□ 20 MB hard disk (40 MB option) 

□ 12 function AT style keyboard 

□ 20 pounds $1699 

CALL TOLL-FREE: 

(800) MICRO-21 

(714) 662-1973, (818) 785-0274 




MICRO EXPRES 




2114 South Grand Ave., Santa Ana, CA 92705 
14640 Victory Blvd., Ste. 130, Van Nuys, CA 91411 
Fax: (714) 662-1258, Telex:9102403029 



Circle 133 on Reader Service Card (Dealers: 134) 



B Y T E 1987 Extra Edition ■ Inside the IBM PCs 165 



BETTER BATCH FILES 





T flPATF FV»TDn\lMT?MT 






I 


MOV 


DX,CMDSEG 




; <- LET DS=COMMAND.COM SEGMENT 




MOV 


DS,DX 








ASSUME 


DS:PSP 








MOV 


AX,ENVSEG 




; <- CHECK ENVIRONMENT SEGMENT 




OR 


AX,AX 








JNZ 


HAVEIT 








MOV 


AX,DS 




;<- ROOT COMMAND.COM 




DEC 


AX 




; WALK MEMORY BLOCKS FORWARD 




MOV 


DS,AX 




; TO THE ENVIRONMENT 




ASSUME 


DS:MEM 






NEXTSEG 


LABEL 
CMP 


NEAR 
MEMTYPE, »M' 








JNE 


ERROR1 




;<- ! ERROR! SHOULD NOT OCCUR 




MOV 


AX,DS 








INC 


AX 








ADD 


AX,MEMSIZE 








MOV 


DS,AX 








ASSUME 


DS:MEM 








CMP 


MEMID,DX 








JNE 


NEXTSEG 




« 




MOV 


AX,DS 








INC 


AX 






HAVEIT 


LABEL 


NEAR 








t nPATTT V- 


=IN THE ENVIRONMENT 




• ======== 


= — LUOA1.C i\- 




MOV 


ES,AX 








ASSUME 


ES:ENV 








XOR 


AL,AL 








MOV 


CX,08000H 








XOR 


DI,DI 






SEARCH 


LABEL 


NEAR 








REPNE 


SCAS STRINGS 






CMP 


STRINGS[DI] 


AL 






JE 


ERR0R2 




;<- ! ERROR! K=MISSING 




CMP 


STRINGS [DI] 


'K' 






JNE 


SEARCH 








CMP 


STRINGS[DI][1], 


i _ i 




JNE 


SEARCH 








ADD 


DI,2 




; <- POSITION AFTER = SIGN 




PITT VTTVCI 


[•ROKE. RESTRICT TO ASCII ! THROUGH ~ 


# ======== 


trill JVlilQ 


FLUSH 


LABEL 

MOV 

INT 

JZ 

MOV 

INT 

JMP 


NEAR 

AH,1 

016H 

FLUSHED 

AH,0 

016H 

FLUSH 




; <- FLUSH THE KEYBOARD BUFFER 


FLUSHED 


LABEL 


NEAR 






GETKEY 


LABEL 


NEAR 








MOV 


AH,0 




; <- WAIT FOR A KEYSTROKE 




INT 


016H 








OR 


AL,AL 








JZ 


GETKEY 








CMP 


AL, ' ! ' 








JB 


GETKEY 








CMP 


AL, ' ~ ' 








JA 


GETKEY 






REGULAR 


LABEL 


NEAR 


;<- 


REGULAR KEY 




CMP 


AL, 'a' 


t 


CONVERT TO UPPERCASE 




JB 


STORE 








CMP 


AL, 'z' 








JA 


STORE 








ADD 


AL/A'r'a' 






STORE 


LABEL 


NEAR 








MOV 


STRINGS [DI] 


AL 


; <- STORE I N THE ENVIRONMENT 




MOV 


AH,1 




;<- RESTORE CURSOR 


■ 


MOV 


CX, CURSOR 






INT 


OlOH 














continued 



you might need later. You do this by 
using the SET command to set each vari- 
able to a value that is as long as the lon- 
gest possible value. This solution has sev- 
eral problems, too. One is anticipating all 
the variables that you will need. Another 
is making certain to reset these strings to 
the longest possible value after you use 
them. This second problem is insur- 
mountable—when the user hits Control- 
Break to exit a batch file, the space set 
aside is often lost. 

Reading a Keystroke 

ONEKEY. ASM (see listing 4) illustrates 
a different approach to the problem of 
user input into batch files. Before you can 
use ONEKEY, you must define the environ- 
ment variable K by executing the line: 

SET K=X 

which sets K to the value of the one-letter 
text string X; you can set K to any initial 
value you want. 

ONEKEY waits for a keystroke, then 
places its value in K. It follows a compli- 
cated search to find the environment vari- 
able it needs. First, it saves and hides the 
cursor. Then it uses the undocumented 
fact that the segment of the current COM- 
MAND. COM is stored at offset 16 hexa- 
decimal in the PSP. It then locates the en- 
vironment of this COMMAND.COM 
using the segment value at offset 2C hexa- 
decimal. Unfortunately, when the value 
is (as it is for the root COMMAND- 
.COM), it must follow the undocumented 
structure of the memory chains to locate 
the environment. 

Each piece of DOS memory is located 
on a 16-byte boundary and contains a 16- 
byte memory-control block followed by 
data. Only the first 5 bytes of the control 
block have meaning. The first byte is 
either the letter M or Z, where M indi- 
cates more, and Z indicates the last 
block. The next word contains either the 
segment of the PSP that owns this mem- 
ory block, or if it is unallocated. The 
final word contains the size, in 16-byte 
increments, of the memory block. 

Once it locates the environment, ONE- 
KEY scans through it, looking for the vari- 
able K. It does this by looking for a NUL 
character followed by a K followed by an 
equal sign. It then flushes the keyboard 
and reads the next keystroke, accepting 
only a printable keystroke in the ASCII 
range from ! to — . For example, the 
batch statement 

IF ERRORLEVEL 49 IF NOT ERRORLEVEL 
50 GOTO a 



becomes 



continued 



166 Inside the IBM PCs • BYTE 1987 Extra Edition 



Q: Whafe the difference? 





PS/2 
MODEL 50 


IBM PC AT 
with1\irboSwitch* 


AUTOCAD regen (nozzle) 


8.9 sec. 


8.9 sec. 


344K Spreadsheet Recalc 


6.9 sec. 


6.9 sec. 


PC Magazine Benchmark NOP 


3.3 sec. 


3.3 sec. 


PC Magazine Benchmark String Sort & Move 


2.3 sec. 


2.3 sec. 


PC Magazine Benchmark Prime Number Sieve 


3.2 sec. 


3.2 sec. 


Upgrade Cost 


*3,595 w 


124 95 



A: About 3,500 bucks. 




The benchmarks and price tags tell the story. 
Having prestigious Fortune 500 customers confirms that 
the story is true. And everyone except IBM admits that 
IBM PC AT models 68, 99, 239, and 339 will support OS/2 
well into the 1990s. As long as they run fast enough 
(that's where TurboSwitch comes in). 

A 30-day money-back guarantee ensures that you will be a 
satisfied customer. And a 2-year warranty gives you the 
confidence Megahertz builds into every product. 

Sounds like you don't need a PS/2 after all. 



TurboSwitch 



±MTZ*= 



Circle 130 on Reader Service Card 



MEGAHERTZ CORPORATION 

2681 Parley's Way, Salt Lake City, UT 84109 (801) 485-8857 

1-800-33-TURBO 

^ a subsidiary of Vector Development, Inc., a public company 

Trademarks and their owners: TurboSwitch— Megahertz. IBM, PC, AT, PS/2— International Business Machines Corp. 

PC Magazine-Ziff-Davis Publishing, AMOCO-Amoco Corporation. GM-General Motors. DuPONT-E.I. DuPontNeimours. 

Boeing- Boeing, OS/2- Microsoft Corp. *10 MHz speed. 

B Y T E 1987 Extra Edition • Inside the IBM PCs 167 



BETTER BATCH FILES 







AL,0 


1 


) - -- 


MOV 


EXIT 


LABEL 


NEAR 


;<-EXIT 




MOV 


AH,04CH 






INT 


021H 




ERR0R1 


LABEL 


NEAR 


; <- COULD NOT LOCATE ENVIRONMENT 




MOV 


AL,1 






JMP 


EXIT 




ERR0R2 


LABEL 


NEAR 


;<- K=MISSING FROM ENVIRONMENT 




MOV 


AL,2 






JMP 


EXIT 




CODE 


ENDS 








END 


IP 


; <- REQUIRED FOR . COM FILE 



Listing 


5: Entering a text string into a previously defined environment 


variable 


using the program STRING.ASM. 


When a batch file executes STRING, 


the program accepts a 


string of characters ended by a carriage return and 


assigns 


the result to the environment variable STRING (up to the maximum 


length reserved for it). 




"- 


VECTOR 


STRUC 






REGIP 


DW 


i 




REGCS 


DW 


? 


■ 


VECTOR 


ENDS 






CODE 


SEGMENT 








ASSUME 


CS:CODE 


;<- ASSUMES FOR .COM FILE 




ASSUME 


DS:CODE 






ASSUME 


ES:CODE 






ASSUME 


SS:CODE 






ORG 


00100H 


; <- REQUIRED FOR . COM FILE 


IP 


LABEL 


NEAR 


J ( USED ON END STATEMENT) 




JMP 


SHORT START 




HOLDS 


DB 


16 


) <- FOR DOS BUFFERED INPUT FUNCTION 


HAS 


DB 







INPUT 


DB 


15DUP(» »),0 




SET 


DB 


11 


;<-F0RINT2E 




DB 


'SET STRINGS 




SETTING 


DB 


16DUP(?) 






— TMT 2 V PRnr^r^TDT? 




SS_SP 


±1N 1 c. Li llWJ 

VECTOR 


<> 




INT2E 


PROC 


NEAR 






PUSH 


AX 


;<- SAVE ALL REGISTERS 




PUSH 


BX 






PUSH 


CX 






PUSH 


DX 






PUSH 


BP 






PUSH 


SI 






PUSH 


DI 






PUSH 


DS 






PUSH 


ES 






PUSHF 








MOV 


SS_SP.REGIP,SP 


;<-SAVESS:SP 




MOV 


SS_SP. REGCS, SS 






INT 


02EH 


;<-D0INT2E 




ASSUME 


DS: NOTHING 






ASSUME 


ES: NOTHING 






ASSUME 


SS: NOTHING 






MOV 


SS,SS_SP. REGCS 


;<- RESTORE SS:SP 




ASSUME 


SS:CODE 






MOV 


SP,SS_SP. REGIP 






POPF 




; <- RESTORE ALL REGISTERS 




POP 


ES 






ASSUME 


ES : CODE 






POP 


DS 






ASSUME 


DS:CODE 






POP 


DI 






POP 


SI 


continued 



IF %\% == 1 GOTO a 

Also, a program can save the current key- 
stroke value for future use, as in 



SET previous^ 



Direct Manipulation 

of Environment Variables 

Another way to set environment variables 
from a program is to use the COM- 
MAND.COM "back door." You do this 
by exploiting the undocumented interrupt 
2Eh. INT 2E executes the command 
pointed to by DS:SI (the data-segment 
register offset by the source-index regis- 
ter). This command must be in the form 
of a command tail, a 1-byte command 
length followed by the command and a 
carriage return. Keep in mind that INT 
2Eh affects the root environment. This 
means that if you have executed another 
copy of C0MMAND.COM (which has 
its own copy of the environment) , the exe- 
cution of an INT 2Eh instruction will not 
affect the current (copied) environment. 

The program STRING.ASM (see list- 
ing 5) is an extension of ONEKEY. STRING 
uses INT 2Eh to set an environment vari- 
able, also called STRING, to the value 
typed in by the user. As with ONEKEY, you 
must define the environment variable be- 
fore you can use the STRING program; in 
this case, you should set it to the longest 
string you think you will ever want to 
enter from the keyboard. 

STRING gets a text string from the key- 
board, builds a string that starts SET 
STRING=< input stringy , then executes 
that string using the undocumented INT 
2Eh function. This last step causes the en- 
vironment variable STRING to take on 
the value you typed in. 

The STRING.ASM program starts 
with a definition of the VECTOR structure. 
This will be used in the INT 2Eh proce- 
dure to save and restore the stack. The 
DOS-buffered input function (the INT 
21h call with the AH register set to OC 
hexadecimal) uses HOLDS, HAS, and IN- 
PUT to read the keyboard input into mem- 
ory starting at location INPUT. INPUT and 
SET will be used in the call to the INT 2Eh 
procedure. INT 2Eh pushes all registers 
and saves the SS and SP registers in 
SS_SP, performs the INT 2Eh that exe- 
cutes the SET STRING= statement, then re- 
stores the stack and all registers. 

During execution of the main routine 
(at START), first free all unneeded mem- 
ory by doing a DOS function 4A 
hexadecimal. (The calling program be- 
gins with control of the computer's entire 
address space. If no memory is freed, the 
INT 2Eh done later in the STRING pro- 
gram will fail because COMMAND- 

continued 



168 Inside the IBM PCs • BYTE 1987 Extra Edition 



Circle 218 on Reader Service Card — » 




SALES GENERATOR PLUS 

A revolution in automating sales & marketing 



SALES GENERATOR PLUS is so easy 
to use the beginner can amazingly have it 
running in minutes. The advanced user 
may be exploring new applications for this 

complete and powerful pro- 

gram several years from now. It ;Ei : "^ 
features all the software tools ||J 
necessary to conduct an flljl, 
effective sales campaign. |f":CL 
Right at your fingertips '^LLL^LLJ 
without complicated commands, Sales 
Generator Plus can automate : Employ- 
ment & Real Estate Agents • Service 
Organizations • Legal & Other profes- 
sionals • Educational Institutions • Medi- 
cal & Dental • Leasing • Insurance & other 
services • Consumer and Industrial Prod- 
uct Sales • And many many more. 




FEATURES I Menu driven • record - 

capacity limited only by disk space • support 
contract available • not copy protected • color 
and monochrome • works with any standard (ACSII) 
^ m word processor or Sidekick • on demand 

a customer-by-customer communic 
: history • automatic sales follow-up • 

telephone follow-up management • 
User definable reporting 'Sales strategies 
P" can be defined by department head & follow the 

t" w «-,. critical path of closing a sale • Intelligent record 

-^^^^™ updating option • correspondence follow-up man- 
agement • target customer selection report • sales perform- 
ance reporting -daily, weekly, monthly, etc. by region, location, 
salesman, product or product group •customized on screen 
script • direct mail management • automatic mailing 
including conditional mail merging & nesting of data items , 
sentences and paragraphs • label and envelope printing 
• definable target market profiles • recognizes standard SIC 
codes etc. • significant dates • profile of target market and 
response profile each with 20 definable fields • up to 14 
powerful selection criteria & data base ranges, 



• appointment management & 
lists • automated telephone followup 

• import/export interfaces • selection 
of sort criteria • follow-up lists 

• name & address lists • phone lists 
is on any IBM PC or compatible 

versatility and features will 
zeyou. 

FOR IMMEDIATE SHIPMENT 

In US and Canada 

1-800-268-8588 

only __ In Hawaii & Alaska: 

1-(416)- 862-001 7 



Superset I Software Inc. 

316 California Avenue, #990 

Reno, Nevada, 

89509 



MASTERCARD Sfe 



DINERS CLUB 



Circle 90 on Reader Service Card (Dealers: 91) 



The Fast Cure 

For A Slowing 

Hard Disk 




Disk Organizer 



"Vopt Is something of a 
miracle. It performs Its disk 
reorganization chores In 
seconds, Instead of the 
minutes and even hours some 
other utilities can take. 

...a bargain, Vopt Is fast, safe, 
effective, and even fun to use. 
What more could you want?" 



Glenn Hart, PC Magazine 
May 12, 1987, Page 36. 



"The overall efficiency of my 
computer system was signifi- 
cantly Improved." 

William G. Harrington, 

The National Law Journal 

June 29, 1987, Page 14. 

Vopt gives you faster hard disk 
access in seconds! 

When DOS creates a file, it 
scatters file fragments over the 
disk surfaces. It takes time to 
collect thosefragments when you 
need the data, so your system 
runs slower and slower as your 
files grow more fragmented. 

Vopt organizes your files the way 
DOS should have written them- 
contiguously— so file retrieval is 
easy and fast! 

^qqc $3 shipping/handling. 
$H9.93 CA add 6 o /o sa | es tax 

GOLDEN BOW SYSTEMS 

2870 Fifth Avenue 

Suite 201 

San Diego, CA 92103 

619/298-9349 

Vopt operates with DOS systems, including 

PS/2, with 51 2Kb RAM. 
Vopt is a trademark of Golden Bow Systems. 




BETTER BATCH FILES 







BP 






POP 




POP 


DX 






POP 


CX 






POP 


BX 






POP 


AX 






RET 






INT2E 


ENDP 






START 


LABEL 


NEAR 






MOV 


AH,04AH 






MOV 


BX, OFFSET FREE 






DEC 


BX 






MOV 


CL,4 






SHR 


BX,CL 






INC 


BX 






INT 


021H 






MOV 


AH, OOCH 


; <- GET INPUT STRING 




MOV 


AL,00AH 






MOV 


DX, OFFSET HOLDS 






INT 


021H 






XOR 


CH,CH 






MOV 


CL,HAS 






JCXZ 


ERR0R1 






ADD 


SET,CL 






MOV 


SI, OFFSET INPUT 






MOV 


DI, OFFSET SETTING 






REP 


MOVSB 






XOR 


BH,BH 






MOV 


BL,SET 






MOV 


SET[BX][1],00DH 






MOV 


SI, OFFSET SET 






CALL 


INT2E 




EXIT 


LABEL 


NEAR 


;<-EXIT 




MOV 


AH,04CH 






INT 


021H 
NEAR 




ERR0R1 


LABEL 






MOV 


AL,1 






JMP 


EXIT 




FREE 


LABEL 


BYTE 




CODE 


ENDS 








end' 


IP 


; <- REQUIRED FOR .COM FILE 



.COM will have no memory at its dispos- 
al.) Then STRING executes DOS function 
OC hexadecimal to clear the keyboard 
buffer and put keyboard input into the 
memory location starting at location 
INPUT. 

The string is then moved to SETTING, 
where it finishes the SET STRING= string. 
In addition, the program corrects the 
length byte at location SET and ends the 
string with a carriage return. If the user 
doesn't enter a string, the program re- 
turns with an error level of 1 . Otherwise, 
it executes the INT 2Eh routine (thus 
changing the value of the STRING vari- 
able) and returns to the calling program 
by executing DOS function 4C hexadeci- 
mal (terminate a process). 

Using the Programs 

Batch files were originally designed to 
eliminate the need to retype a routine set 
of commands, and the use of replaceable 
parameters lets you change what the 
batch file does when you start its execu- 
tion. By using the programs in this arti- 
cle, you can now influence what the 



batch file does while it's executing, 
which is a more natural and potentially 
more powerful form of control. In addi- 
tion, the STRING and TOPATH commands 
allow you to change to a new directory 
based on a user-specified directory 
name. 

You can use these commands in several 
important ways. If you have a hard disk, 
you can use them to automate some of the 
inevitable housekeeping tasks. You can 
also create a menu-driven shell that lets 
you (or someone unfamiliar with the 
computer) perform certain tasks easily 
and without error. ■ 

BIBLIOGRAPHY 

Disk Operating System Version 3.00, IBM 
Corp., Boca Raton, FL, 1984. 

Shaw, R. H. "A User's Guide to the DOS 
Environment," PC magazine, March 31, 
1987, page 287. 

Shaw, R. H. "Expanding the DOS Envi- 
ronment," PC magazine, April 14, 
1987, page 295. 

Technical Reference Personal Computer 
AT, IBM Corp., Boca Raton, FL, 1984. 



170 Inside the IBM PCs • BYTE 1987 Extra Edition 



The Right 
Business 
Connections... 
Made Easy 

If you use more than 
one computing device in 
your office, you and your 
colleagues probably waste 
many hours making con- 
nections and changing 
settings — hours you'd rather 
devote to real business. 

A Newbridge MainStreet'" 
system takes care of the 
equipment connections — 
once and for all — while you 
take care of business. 

With a single MainStreet con- 
troller you'll have a complete 
"Desktop Network" 
for up to 48 
equipment 
connections. 




Even larger interdepart- 
mental networks can be 
created by linking controllers. 

East/Street'" software brings 
the network to your PC, 
letting you "select and con- 
nect" to any equipment in the 
network, perform secure file 
transfers without inter- 
ruptions to others, conduct 



split-screen conversations 
with colleagues, emulate 
terminals and queue for 
busy devices. 

Whether your company is big 
or not so big, you'll be sur- 
prised how quickly your 
MainStreet desktop network 
leads to greater productivity 
At an amazingly low price* ... 
and isn't that your 
bottom line? 




Desktop Networking 

NEWBRIDGE 



Newbridge Networks Inc. 

1-800-332-1080 

13873 Park Center Road, 
Suite 160 

Herndon, VA 22071 
(703) 834-3600 

Newbridge Networks Corporation 

1-800-267-6246 

1051 Baxter Road 
Ottawa, Ontario K2C 3P2 
(613) 726-1601 



Newbridge Networks Limited 

0-800-373799 

22 Welsh Street 

Chepstow, Gwent, UK NP6 5LL 

Tel. 02912 6896 



Newbridge, MainStreet and the Newbridge logo are 

trade marks of Newbridge Networks Corporation. 

Copyright 1987 

MS-DOS is the registered trademark ot Microsoft 

Corporation. 



* About one tenth the cost of most LANs — 
another good reason to contact Newbridge today. 




For more information call from your modem 703-834-1080 
(0 - 1 200 baud, 8 bit, no parity, 1 stop bit) and enter the access code 
MAINST7 when prompted. 



Circle 150 on Reader Service Card 



B Y T E 1987 Extra Edition • Inside the IBM PCs 171 



m 





chcd screen image. 




Actual unretouched screen 




Screen stars with The Visible Edge. 



What gives Princeton's new generation of screen stars the Visible Edge is a screen 
image of incomparable clarity and resolution. Where brilliant colors and infinite 
shades of gray, with striking contrast and dimension, are commonplace. 

The versatility of the Princeton family of monitors gives the new generation (and 
present generation) of computers, the greatest autosynchronous horizontal/verti- 
cal scan range combination available. The clarity of .28mm dot pitch. 1050x770 
display resolution. And the entire spectrum of color, with the ease and comfort 
that can only accompany an economically designed monitor. 

Experience a world of unlimited vision. And the technology that's made our high 
level of quality, service, value and performance, second nature. Experience the Visible 
Edge. And see what we do best. For more information call (609) 683-1660 x 100. 



PSC-28 



PSM-03 



IBM PS/2 COMPATIBLE 



ULTRASYNC 



MAX-15 




IBM PC/XT/AT & PS/2 Macintosh II COMPATIBLE 



P RINCETON 

GRAPHIC SYSTEMS 
THE VISIBLE EDGE 



Circle 185 on Reader Service Card 



601 Ewing Street. Building A. Princeton, New Jersey 08540 (609) 683-1660 



INSIDE THE IBM PCs 



A close look at a growing lineage 



IBM PC Family BIOS 
Comparison 



byJonShiell 



In the two years since the first 
BIOS comparison table ap- 
peared in BYTE [Editor's 
note: Seethe "IBM PC Family 
BIOS Comparison" in 
BYTE's Inside the IBM PCs, 
Fall 1985] , the number of ma- 
chines in the family has more 
than doubled. This article pre- 
sents an expanded and up- 
dated BIOS table. Except for 
the Model 30, the PS/2 sys- 
tems actually have two ver- 
sions of the BIOS in their 
ROMs. The first version, for 
use in real mode and compat- 
ible with the BIOS in the prior 
PCs, is covered in this article. 
The other BIOS is for use with 
the OS/2 operating system and 
will not be covered here. 

As the PC family has grown, 
there have been additions and 
deletions to the basic hardware 
set of the machines. (Because 
the Model 25 was only recently 
introduced, detailed informa- 
tion on its BIOS was not avail- 
able for this article.) This arti- 
cle attempts to provide a 
comparative perspective of the 
various Basic I/O System 
(BIOS) features. If you wish to 
program on one machine, this 
article can help determine 
which functions apply across 
all machines in the family. 

Table I gives the system configura- 
tions for IBM PC computers, with the ex- 
ception of the 3270 PC. Table 2 describes 
the ROM BIOS interrupt vectors; table 3 
lists BIOS video modes; and table 4 lists 
low-memory reserved addresses. Table 5 
describes hardware interrupt request 
lines; table 6 covers Expanded Memory 
Specification (EMS) function-call inter- 
faces. Table 7 covers multitasking hooks 
using interrupt 15; table 8 gives BIOS ex- 
tension addresses; and table 9 lists the 

Illustration: Chris Spollen © 1987 




NETBIOS modifications and additions to 
DOS. 

The purpose of the BIOS is to present a 
common interface to the program, be it 
an applications program or an operating 
system, to minimize the amount of code 
that must be rewritten when using differ- 
ent machines. The BIOS lets the pro- 
grammer isolate hardware dependence to 
a single set of primitive routines. What 
you gain from this is portability and com- 
patibility between different hardware en- 



vironments. At the same time, 
you retain almost all the speed 
and control of direct hardware 
access. 

The BIOS is made up of the 
code and programs that pro- 
vide the device-level control 
for the major I/O devices in 
the system. In the IBM PC 
family, the BIOS is contained 
in ROM on the system board, 
along with cassette BASIC 
and a set of routines (called 
POST, for power-on self test) 
that check out the machine 
when you turn it on. 

The BIOS creates hardware 
independence by providing a 
level of indirection and sepa- 
ration from the hardware. For 
example, when using a BIOS 
call to send a character to a 
printer, a programmer doesn't 
need to know what the I/O ad- 
dress of the printer port is or 
how to control it. 

The BIOS is normally in- 
voked via a set of interrupts 
vectored into various BIOS 
entry points. Other interrupt 
vectors are used to service 
hardware interrupts, such as 
"disk operation finished." In 
practical terms, the software 
invokes the BIOS by loading 
the appropriate registers in the 
microprocessor and issuing an 
INT instruction. For example, 

MOV AH, ; Load AH with the BIOS 
function code for 
"print the character 
in register AL n 

continued 

Jon Shiell is a contributing editor at 
BYTE. He can be reached do BYTE, One 
Phoenix Mill Lane, Peterborough, NH 
03458. 



BYTE 1987 Extra Edition • Inside the IBM PCs 173 



IBM PC FAMILY BIOS COMPARISON 



Table 1: System configurations for the IBM PC family of computers. 



Feature 



PC PC PCjr PC PC XT/2 XT/ 
XT AT AT 3x9 286 



PC PS/2 PS/2 PS/2 PS/2 Comments 
CVT 30 50 60 80 



FF FE FD FC FC 

N/U N/U N/U N/U 01 

N/U N/U N/U N/U 00 

N/U N/U N/U N/U 70 



Model byte 

Type byte 

BIOS level 

Hardware 
configuration 

Processor type 8088 8088 8088 80286 80286 



FB 


FC 


F9 


FA 


FC 


FC 


F8 


@ FFFFE 


01 


02 


00 


00 


04 


05 


00 




00 


00 


00 


00 


00 


00 


00 





Processor speed 4.77 4.77 4.77 

Num coprocessor 
speed 4.77 4.77 4.77 

DMA speed 4.77 4.77 4.77 

Bus width 8 8 8 

Maximum memory 
(In bytes) 640K 640K 640K 15M 

8-blt DMA 
channels 4404 

16-bltDMA 
channels 3 

Timer channels 
0and2 • • • • 

Timer channel 1 

System clock 

Number of 
function keys 



8 



DO 70 38 FA F6 F6 F6 Note 1 

8088 80286 80C88 8086 80286 80286 80386 

4.77 6.0WS 4.77 8 10 10 16/20 Note 2; 1 wait state (WS) 

unless otherwise noted. 



4 


5.3 


4.77 


6 


4.77 


8 


10 


10 


16/20 


3 


4 


4.77 


3 


4.77 


4 


10 


10 


8/10 


16 


16 


8 


16 


8 


8 


16 


16 


32 Note 3 



15M 640K 15M 512K 640K 16M 16M >16M Note4 



• • • • • 

o o o • • 

10 10 10 10 10/12 



4 


4 


3 


4 


4 


4 


4 


Note 5 





3 








3 


3 


3 




• •••••• Note6 


• 


• 


O 


• 


• 


• 


• 


Note 7 


O 


• 


• 


• 


• 


• 


• 


Note 8 


10/12 


10/12 


12 


12 


12 


12 


12 


Note 9 



Notes: 

All memory addresses and interrupts are in hexadecimal. The 
PC AT 3x9 models are the 3 1 9 and 339. The older models are 
the 099, 068, and 239. The PS/2 Model 25 has the same system 
configuration as the Model 30, except It has no hard disk and a 
different model version in the BIOS. 
• . Yes; O = No; N/U = not used. 

1 . Configuration parameters, INT 15 (AH=0C0) returns a 
pointer to a block with the following format: 



DW 
DB 

DB 
DB 
DB 



8 
Model_byte 

Type_byte 
BIOS_level 
HW confjg 



DW 
DW 








Length of following table 
System model; see hardware table for 
specific values 
System model type 
BIOS revision level 
1 0000000 = DMA channel 3 used 
by fixed disk BIOS 
01000000 = Cascaded interrupt 
Level 2 

00100000 = Real-time clock avail- 
able (RT/CMOS RAM chip) 
00010000 = Keyboard scan code 
hook 1 A (PC AT and XT 286) 
00010000 = Keyboard intercept 
(INT 1 5, AH=41) supported (PC 
CVT and PS/2) 

00001000 = Wait on external event 
(INT 15, AH=41) supported (PC 
CVT); reserved on PS/2 systems 
00000100 = Extended BIOS data 
area allocated 

00000010 = Micro Channel system 
00000001 = Reserved 
Reserved 
Reserved 



The PC XT 2 (Model 51 60, model = FB, type = 01 , BIOS date 
01/10/86) returns an incorrect value for the configuration 
parameter. The incorrect value indicates that the level 2 
interrupt is cascaded into another interrupt controller, and 
that DMA channel 3 is not used by the system BIOS when a 
hard disk is installed. 

2. In the PCjr, the video is mapped into the lower 1 28 K bytes of 
memory. Accesses to that area tend to be 50 percent slower 
than accesses for a normal PC. The PC CVT uses static 
CMOS RAM, so it needs no refresh cycles; thus, programs 
may run slightly (up to 5 percent) faster than expected. The 
PS/2 Model 80 comes in two speeds— 1 6 MHz and 20 MHz, 
both with one wait state. 

3. The PS/2 Model 30's memory is 1 6 bits, but the I/O bus is the 
8-bit PC bus. 

4. The PCjr has up to 128K bytes of internal memory; full 
expansion requires sidecars. The PS/2 Model 80 supports 
32-bit memory addresses, so in theory you could put up to 4 
gigabytes in one. 

5. The PC CVT doesn't need to use one channel for dynamic 
RAM refresh, so its channel 3 acts like a PC's channel 4. 

6. The PC CVT supports only modes 0, 2, 3, and 4 on channel 
0. 

7. Use depends on model (mostly refresh timing). 

8. RT/CMOS RAM chip; PC CVT does not save configuration 
here. 

9. The PC XT Models 089, 268, and 278 have the new key- 
board; the other three models have the old keyboard. The PC 
AT Model 339 has the new keyboard, and the Model 31 9 has 
the old keyboard. The PC CVT generates function keys F1 1 
and F12 with multiple keystrokes. 



174 Inside the IBM PCs • B Y T E 1987 Extra Edition 



"We need a 
powerful relational 
database" 




,l/ 3ut cue need & 
dpmddkeb" 



It's a Win-Win with Open Access II 

The Most Powerful Database and Spreadsheet 

Available in An Integrated Package 



The arguments for integrated software used to be 
convenience, ease of use, and shortened learning curve. 
The argument against it was no power. The argument is 
over. According to our users, the primary reason for their 
purchase of Open Access II is the power of the relational 
database and the spreadsheet with 3-D graphics, followed 
by convenience and ease of use. And, by the way, this 
database and spreadsheet are integrated with a word 
processor, communications and desk accessories. 



Nose-to-Nose 
Comparison Chart 



»— "5 CO 
<3> CD <D O — 

ctf £ P C. ■*-- 



S _£ ^ 



CO 



Q_ <D £0 



GO 
O 

lc ^ cd 



CO ,b£ <D 

n3 



strengthened its position as a software developer's 
power tool. 

Accounting Access is now available for customized 
bookkeeping with Open Access II. 

Also, Filling Your Network Needs 
Local Area Network users around the world are singing 
the praises of Open Access II Network. So is the press, 
Infoworld calls it "an excellent value. . .may be one of the 
software bargains of the year." LAN Magazine says". . .a 
sharp product. . .a unique and interesting spreadsheet 
locking scheme." 



CD Q_ -i ^. 



5 5£ = "55 2 Q 5 
Ll_ CC C3T QC CD oo CO 



Open Access II 


^ 


^ 


S 


s 


s 


S 


S 


s 


S 


s 


s 


s 


Symphony 


• 


s 


S 






S 




s 




S 


S 




Framework 


• 




s 


s 




S 




S 




s 


s 





What's New in Open Access II 
Meeting the challenge of advanced hardware technology, 
Open Access II update version 2.05 includes graphics 
drivers for the IBM Personal Systems/2, extended 
memory support, math co-processor support 
(8087/80287) and 37 other additions and alterations. 

Developers Delight 

The power and flexibility available in this package makes 
it an ideal software choice for developers of complex 
vertical applications, developers in need of large 
databases with sophisticated programming capabilities. 
With the addition to our product line of Runtime System 
and our upcomig compiler, Open Access II has 

Software Products International 

10240 Sorrento Valley Road • San Diego, California 92121 



Test Drive - $19.95 

We invite you to experience the power, flexibility, and 
performance available in this integrated package by 
test driving Open Access II with our Demo Tutorial. For 
only $19.95 you can experience this software, limited 
only by file size restrictions. 

Call 800-521-3511 

(if you're in California call 800-621-7490). 

Order your Demo Tutorial today, it's a powerful 

experience. 



"I always get 
what I want" 




'% too!* 



Open Access II users call for update trade-in information. 



Circle 212 o n Reader Service Card (Dealers: 213) 



BYTE 1987 Extra Edition • Inside the IBM PCs 175 



IBM PC FAMILY BIOS COMPARISON 



Table 2: ROM BIOS interrupt vectors. 














Interrupt 


Function 


PC 


PC 


PCjr 


PC 


XT 


XT 


PS 


PS/2 


PS/2 


BIOS Comments 




code 




XT 




AT 


/2 


/286CVT 


30 


other 







N/A 




















Divide by zero trap 


1 


N/A 




















Single-step mode (used by debug) 


2NMI 


N/U 


• 


• 


o 


• 


• 


• 


o 


• 


• 


Parity check routine 




N/U 


• 


• 


o 


o 


• 


o 


o 


• 


o 


Coprocessor interrupt (directly) 




N/U 


o 


o 


o 


• 


o 


• 


o 


o 


• 


Coprocessor interrupt (via redirection from Int 75, 
IRQ 13) 




N/U 


o 


o 


• 


o 


o 


o 


• 


o 


o 


Keyboard interrupt routine (with data ready) 




N/U 


o 


o 


o 


o 


o 


o 


• 


o 


• 


I/O channel check 




N/U 


o 


o 


o 


o 


o 


o 


• 


o 


o 


Disk-controller power-on request 




N/U 


o 


o 


o 


o 


o 


o 


• 


o 


o 


System suspend 




N/U 


o 


o 


o 


o 


o 


o 


• 


o 


o 


Real-time clock (periodic, update-ended, or alarm 
interrupt) 




N/U 


o 


o 


o 


o 


o 


o 


o 


o 


• 


System watchdog timer, time-out interrupt (IRQO 
interrupt missed) 




N/U 


o 


o 


o 


o 


o 


o 


o 


o 


• 


Uchannel DMA timer, time-out interrupt (DMA burst 
greater than 7.8 microseconds) 


3 


N/A 




















Breakpoint (used by debug) 


4 


N/A 




















Overflow trap 


5 


N/A 




















Print-screen function (uses address 50:0 for status) 


6 


N/U 


o 


o 


o 


o 


o 


o 


o 


o 


o 


Reserved 


7 


N/U 


o 


o 


o 


o 


o 


o 


o 


o 


o 


Reserved 


8 (IRQ 0) 


N/A 




















Timer interrupt handler (entered about 18.2 times per 
second) 


9(IRQ1) 


N/A 




















Keyboard interrupt handler 


A (IRQ 2) 


N/A 


o 


o 


o 


• 


o 


• 


o 


o 


• 


Cascade for IRQ8 to IRQ1 5 




N/A 


o 


o 


o 


o 


o 


o 


o 


o 


• 


EGA Vertical retrace interrupt for EGA and VGA 


B(IRQ3) 


N/A 




















COM2: controller (e.g., serial port) hardware interrupt 
entry 


C (IRQ 4) 


N/A 




















COM1: controller (e.g., serial port) hardware interrupt 
entry 


D (IRQ 5) 


N/A 


• 


• 


o 


• 


• 


• 


o 


• 


o 


Alternate printer LPT2: (PC AT's 80287 initial-interrupt 
entry) 




N/A 


o 


• 


o 


o 


• 


o 


o 


• 


o 


Hard disk controller 




N/A 


o 


o 


• 


o 


o 


o 


o 


o 


o 


Vertical retrace interrupt (display) 


E (IRQ 6) 


N/A 




















Disk-controller interrupt entry 


F(IRQ7) 


N/A 




















Parallel printer, LPT1 : 


10 























EGA Set CRT mode 


Video I/O 


1 

2 

3 

4 

5 

6 

7 

8 

9 

0A 

OB 

OC 

OD 
















o 


o 


Set cursor type 

Set cursor position 

Read cursor position 

Read light-pen position 

Select active display page 

Scroll active page up 

Scroll active page down 

Read attribute/character at current cursor position 

Write attribute/character at current cursor position 

Write character only at current cursor position 

Set color palette 

Write dot 

Read dot 




OE 


• 


• 


• 


• 


• 


• 


• 


• 


• 


Teletype write to active page 




OF 




















Return current video state 




10 


o 


o 


• 


o 


o 


o 


o 


• 


• 


EGA Set palette registers 




11 


o 


o 


o 


o 


o 


o 


o 


• 


• 


EGA Character-generator routine 




12 


o 


o 


o 


o 


o 


o 


o 


• 


• 


EGA Alternate select 




13 


o 


o 


o 


• 


o 


• 


o 










14 


o 


o 


o 


o 


o 


o 


• 






substitute 




15 


o 


o 


o 


o 


o 


o 


• 


o 


o 


Return active-display type and parameters 




1A 


o 


o 


o 


o 


o 


o 


o 


• 


• 


Read/write display combination code 




1B 


o 


o 


o 


o 


o 


o 


o 






Return functionality/state information 



176 Inside the IBM PCs • BYTE 1987 Extra Edition 



IBM PC FAMILY BIOS COMPARISON 



Interrupt 



Function 
code 



PC 



PC PCjr PC 
XT AT 



XT XT PS PS/2 
/2 /286CVT 30 



PS/2 BIOS Comments 
other 



11 



12 



13 



Disk 



13 



Hard disk 



1C OOOOOOOO • 

N/U •••••••• • 

N/U •••••••• • 

•••••••• • 

1 •••••••• • 

2 •••••••• • 

3 •••••••• • 

4 •••••••• • 

5 • ••••••• • 

8 O O O 3x9 O • • • • 

15 OOO#«##0 • 

16 OOOS###« • 

17 OQO«#### • 

18 O O O 3x9 • • O • • 
N/A •••••••• • 

N/A OOO#OS0* • 

N/A OOO0O«O# • 

N/U #0#000#0 O 

o#o#o#o« • 

1 O#O#O0O# • 

2 0#0#0#0# • 

3 O#O0OSO# • 

4 0#0#0«0# • 

5 O#O#O»O0 • 



6 


O 


• 


o 


N/U 


o 


N/U 


o 


N/U 


N/U 


7 


O 


• 


o 


N/U 


o 


N/U 


o 


N/U 


N/U 


8 


o 


• 


o 


• 


o 


• 


o 


• 


• 


9 


o 


• 


o 


• 


o 


• 


o 


• 


• 


0A 


o 


• 


o 


• 


o 


• 


o 


D 


D 


OB 


o 


• 


o 


• 


o 


• 


o 


D 


D 


OC 


o 


• 


o 


• 


o 


• 


o 


• 


• 


0D 


o 


• 


o 


• 


o 


• 


o 


• 


• 


OE 


o 


• 


o 


N/U 


o 


N/U 


o 


D 


D 


OF 


o 


• 


o 


N/U 


o 


N/U 


o 


D 


D 


10 


o 


• 


o 


• 


o 


• 


o 


• 


• 


11 


o 


• 


o 


• 


o 


• 


o 


• 


• 


12 


o 


• 


o 


N/U 


o 


N/U 


o 


D 


D 


13 


o 


• 


o 


N/U 


o 


N/U 


o 


D 


D 


14 


o 


• 


o 


• 


o 


• 


o 


D 


D 


15 


o 


o 


o 


• 


o 


• 


o 


• 


• 


19 


o 


o 


o 


O 


o 


O 


o 


• 


• 


1A 


o 


o 


o 


o 


o 


o 


o 


O 


• 


14 




















RS-232C I/O 1 
2 




















3 
4 


o 


o 


o 


o 


o 


o 


o 


• 


• 


5 


o 


o 


o 


o 


o 


o 


o 


• 


• 




2 


2 


2 


2 


2 


2 


2 


4 


4 


15 N/U 


o 


• 


o 


o 


o 


o 


"O 


O 


O 


Cassette I/O 


• 


o 


• 


o 


o 


o 


o 


O 


O 


1 


• 


o 


• 


o 


o 


o 


o 


O 


O 


2 


• 


o 


• 


o 


o 


o 


o 


O 


O 


3 


• 


o 


• 


o 


o 


o 


o 


O 


O 


and System OF 


o 


o 


o 


o 


o 


o 


o 


O 


• 


services 




















20 


o 


o 


o 


• 


o 


• 


o 


O 


• 



Save/restore video state 

Equipment determination; returns the EQUIP FLAG 

from BIOS data area 

Memory size determination; returns amount of 
memory in the system 

Reset disk system 

Read status of last operation 

Read sectors into memory 

Write sectors from memory 

Verify sectors 

Format a track 

Return the current drive parameters 

Read disk type (none, disk-no-change line, disk, hard 

disk) 

Disk-change line status 

Set disk type for format 

Set media type for format 

Uses BIOS data area DISK_POINTER 

Uses disk-drive-media-type bytes at 40:90 and 40:91 

Uses rest of disk "state machine" at 40:92 to 95 

Not used by PC, PCjr, or PC CVT 

Reset disk system 

Read status of last disk operation 

Read sectors into memory 

Write sectors from memory 

Verify sectors 

Format a track (not enhanced-small-device-interface 

[ESDI] disks) 

Format a track and set bad-sector flags 

Format the drive starting at the desired track 

Return the current drive parameters 

Initialize drive-pair character (uses INT 41 and 46, not 

ESDI disks) 

Read long 

Write long 

Seek to desired track 

Alternate disk reset (not ESDI disks) 

Read sector buffer 

Write sector buffer 

Test drive ready 

Recalibrate 

Controller RAM diagnostic 

Drive diagnostic 

Controller internal diagnostic 

Read disk type (none, disk-no-change line, disk, hard 

disk) 

Park heads 

ESDI disks only; format unit 

Initialize communications port 

Send a character 

Receive a character 

Get port status 

Extended initialize 

Extended communications port control 

Number of serial ports supported (four ports via 

extended control functions) 

Not used on PC XT 

Turn cassette motor on 

Turn cassette motor off 

Read from cassette 

Write to cassette 

ESDI drive only; format unit periodic interrupt 

(invoked once per cycle) 

AL= 1 0, setup of SYSREQ routine $ (software only) 



B Y T E 1 987 Extra Edition * Inside the IBM PCs 176A 



IBM PC FAMILY BIOS COMPARISON 



Interrupt Function 


PC 


PC 


PCjr 


PC 


XT 


XT 


PS 


PS/2 


PS/2 


BIOS Comments 


code 




XT 




AT 


12 


/286 CVT 


30 


other 






o 


o 


o 


• 


O 


• 


o 


o 


• 


AL=1 1 , completion of SYSREQ function $ (software 
only) 


21 


o 


o 


o 


o 


O 


o 


o 


o 


• 


Power-on self-test error log 


40 


o 


o 


o 


o 


o 


o 


• 


o 


O 


Read or write system (AL= 0,1) or modem (AL= 2,3) 

profile 


41 


o 


o 


o 


o 


o 


o 


• 


o 


o 


Wait on external event 


42 


o 


o 


o 


o 


o 


o 


• 


o 


o 


Request system power off (system suspend) 


43 


o 


o 


o 


o 


o 


o 


• 


o 


o 


Read current system status information 


44 


o 


o 


o 


o 


o 


o 


• 


o 


o 


Activate or deactivate internal modem power 


4F 


o 


o 


o 


3x9 


• 


• 


• 


• 


• 


BIOS keyboard interrupt hexadecimal 9 intercept 


80 


o 


o 


o 


• 


• 


• 


o 


• 


• 


Device open $ 


81 


o 


o 


o 


• 


• 


• 


o 


• 


• 


Device close $ 


82 


o 


o 


o 


• 


• 


• 


o 


• 


• 


Program termination $ 


83 


o 


o 


o 


• 


o 


• 


• 


• 


• 


Event wait 


84 


o 


o 


o 


• 


• 


• 


o 


• 


• 


Joystick support 


85 


o 
o 


o 
o 


o 
o 














AL=0, system request key has been pressed $ 
AL= 1 , system request key has been released $ 


86 


o 


o 


o 


• 


o 


• 


• 


• 


• 


Wait (for n microseconds) 


87 


o 


o 


o 


• 


o 


• 


o 


• 


• 


Move block of memory (can move to and from 
extended memory) 


88 


o 


o 


o 


• 


o 


• 


o 


• 


• 


Return amount of memory above 1 megabyte 


89 


o 


o 


o 


• 


o 


• 


o 


• 


• 


Switch processor to virtual mode 


90 


o 


o 


o 














Device-busy loop $ 


91 


o 


o 


o 














Interrupt complete flag set $ 


CO 


o 


o 


o 


3x9 












Return system parameter pointer; see table 1 for 

definitions 


C1 


o 


o 


o 


o 


o 


o 


o 


• 


• 


Return extended-BIOS data-area segment address 


C2 


o 


o 


o 


o 


o 


o 





• 


• 


Pointing-device BIOS interface 


C3 


o 


o 


o 


o 


o 


o 





o 


• 


Enable/disable watchdog time-out 


C4 
16 


o 


o 


o 


o 


o 


o 


o 


o 


• 


Programmable option select 
Read next ASCII character 




Keyboard 1 




















Set Z flag if buffer not empty 


2 




















Read shift status 


3 


o 


o 


• 


339 


o 


• 


o 


• 


• 


Settypematic rates 


4 


o 


o 


• 


O 








• 


o 


o 


Turn on/off keyboard click 


5 


o 


o 


o 


339 


• 


• 


o 


• 


• 


Place ASCII character/scan code combination in key- 
board buffer as if from keyboard 


10 


o 


o 


o 


339 


• 


• 


o 


• 


• 


Extended read interface for the enhanced (1017102- 
key) keyboard 


11 


o 


o 


o 


339 


• 


• 


o 


• 


• 


Extended ASCI I status for the enhanced (1 01 -/1 02- 
key) keyboard 


12 


o 


o 


o 


339 


• 


• 


o 


• 


• 


Return extended shift status in AX register (1 01 -/1 02- 
key keyboard) 


17 Printer 




















NB Print a character 


1 




















NB Initialize printer port 


2 




















NB Return printer-port status 




3 


3 


3 


3 


3 


3 


3 


2 


2 


Number of printer ports supported 


18 BASIC N/A 




















Points to resident (ROM) BASIC 


19 N/A 


• 


o 


o 


O 


o 


o 


• 


o 


o 


Bootstrap loader, I PL the system from a disk 


N/A 


o 


• 


o 


• 


o 


• 


o 


• 


• 


Bootstrap loader, I PL the system from a disk or hard 
disk 


N/A 


o 


o 


• 


O 


o 


o 


o 


o 


o 


Bootstrap loader, IPL the system from a disk or 
cartridge 


1A 


















© 


Read current clock setting 


Time of day 1 




















Set the current clock 


2 


o 


o 


o 


• 


o 


• 


• 


• 




Read the real-time clock 


3 


o 


o 


o 


• 


o 


• 


• 


• 




Set the real-time clock 


4 


o 


o 


o 


• 


o 


• 


• 


• 




Read date from real-time clock 


5 


o 


o 


o 


• 


o 


• 


• 


• 




Set date into real-time clock 


6 


o 


o 


o 


• 


o 


• 


• 


• 




Set the alarm (24 hour maximum, goes off and 
causes an INT4A) 


7 


o 


o 


o 


• 


o 


• 


• 


• 


• 


Reset the alarm 


8 


o 


o 


o 


o 


o 


o 


• 


o 





Set real-time clock alarm activated power-on mode 


9 


o 


o 


o 


o 


o 


o 


• 


• 





Read alarm time and status 

continued 



BYTE 1987 Extra Edition • Inside the IBM PCs 



176B 



IBM PC FAMILY BIOS COMPARISON 



Interrupt 


Function 
code 


PC 


PC 
XT 


PCjr 


PC 

AT 


XT 

/2 


XT PS 
/286 CVT 


PS/2 
30 


PS/2 
other 


BIOS Comments 


Sound 
select 

1B 

1C 

1D 
1E 


0A 
0B 
80 


o 
o 
o 


o 
o 
o 


o 
o 


o 
o 
o 


• 
• 
o 


o 
o 
o 


o 
o 
o 








Read system-timer day counter 
Set system-timer day counter 
Set up sound multiplexer 


N/U 










• 










Keyboard break address 

Timer tick 


N/U 

N/U 










• 
• 




•* 












Video parameters tor 6845 initialization 


N/U 










• 












Disk parameters 


1F 
20 


N/U 










• 






NB 


Graphics character extension for modes 4, 5, and 6 

DOS program terminate 

DOS function call 

DOS terminate address (don't issue this INT) 




o 


o 


o 


o 


o 


o 
o 
o 
o 
o 
o 


o 
o 
o 
o 
o 
o 


o 
o 
o 


o 
o 
o 


21 
22 
23 




o 
o 
o 


o 
o 
o 


o 
o 
o 


o 
o 
o 
o 
o 


o 
o 
o 
o 
o 


o 
o 
o 


o 
o 
o 




DOS control-break exit address (don't issue this INT) 
DOS fatal-error vector 
DOS absolute disk read 
DOS absolute disk write 


24 




o 


o 


o 
o 


25 




o 


o 


26 




o 


o 


o 


o 


o 


o 


o 


o 


o 


27 

28 
29 




o 
o 


o 
o 


o 
o 


o 
o 


o 
o 


o 
o 


o 
o 


o 
o 


o 
o 




DOS terminate, stay resident (instead, use INT21 , 

AH=31) 

Used internally by DOS 




o 


o 


o 


o 


o 


o 


o 


o 


o 




Reserved for DOS 


2A 




o 


o 


o 


o 


o 


o 


o 


o 


o 




Used by NETBIOS 


2B 




o 


o 


o 


o 


o 


o 


o 


o 


o 




Reserved for DOS 


2C 




o 


o 


o 


o 


o 


o 


o 


o 


o 




Reserved for DOS 


2D 




o 


o 


o 


o 


o 


o 


o 


o 


o 




Reserved for DOS 


2E 




o 


o 


o 


o 


o 


o 


o 


o 


o 




Reserved for DOS 

NB Interprocess multiplex interrupt (see notes) 
Call resident part of PRINT 
Call resident part of ASSIGN 
Call resident part of SHARE 
Call resident part of APPEND 


2F 


1 
2 

10 
B7 


o 
o 
o 
o 
o 


o 
o 
o 
o 
o 


o 
o 
o 
o 
o 


o 
o 
o 
o 
o 


o 
o 
o 
o 
o 


o 



o 
o 
o 


o 
o 
o 
o 
o 


o 

o 



o 
o 


o 

o 
o 
o 
o 




30 to 3F 




o 


o 


o 


o 


o 


o 


o 


o 


o 




Reserved for DOS 


40 
41 

42 


N/U 


o 


• 


o 


• 


• 


• 
• 


o 
o 


• 






Points to disk BIOS entry 

Pointer to first hard disk, parameter block (not ESDI 
disks) 


N/U 


o 


• 


o 


• 


• 


• 




N/U 


o 


o 


o 


o 
o 


o 


o 


o 


• 




EGA 


Points to screen BIOS entry 


43 


N/U 


o 


o 


o 


o 
o 
o 
o 


o 


o 


• 


o 


EGA 
EGA 

o 


Pointer to EGA initializing parameters 

Pointer to EGA graphics character table 

Pointer to lower graphics character table 

Reserved 

Pointer to second hard disk, parameter block (not 
ESDI disks) 

Reserved 

Cordless keyboard translation 


44 
45 


N/U 

N/U 
N/U 


o 
o 
o 


o 
o 
o 


o 
• 
o 


o 
o 
o 


o 
o 
o 


• 
o 

o 


• 
o 


46 

47 
48 
49 


N/U 

N/U 
N/U 


o 


o 


o 

o 
• 


• 

o 
o 


o 

o 
o 
o 
o 
o 


• 

o 
o 
o 
o 


o 

o 
o 
o 
• 
o 
o 
o 


• 

o 
o 
o 
• 
o 
o 
o 
o 
o 
o 
o 
o 


• 

o 
o 
o 
• 
o 


o 
o 


o 
o 


N/U 


o 


o 


• 


o 




Nonkeyboard scan-code translation table address 

Real-time clock alarm 

Reserved 

Periodic alarm interrupt from timer 

Reserved 

Cluster adapter BIOS-entry address 

Reserved 

NETBIOS entry point 

Reserved 

Reserved for user program interrupts 


4A 

4B to 4F 

50 

51 to 59 


N/U 
N/U 


o 
o 


o 
o 


o 
o 


o 
o 


o 


N/U 


o 


o 


o 


o 


o 
o 
o 
o 
o 
o 


o 
o 


o 
o 
o 
o 
o 
o 
o 


CLU 
NB 


N/U 


o 


o 


o 


o 


5A 
5B 


N/U 
N/U 


o 
o 


o 
o 


o 
o 


o 
o 
o 
o 


o 
o 
o 
o 


o 
o 
o 
o 
o 


5C 
5Dto5F 


N/U 


o 
o 


o 
o 


o 
o 


60 to 66 


N/U 


o 


o 


o 


o 


o 


o 



176C Inside the IBM PCs • B Y T E 1987 Extra Edition 



IBM PC FAMILY BIOS COMPARISON 



Interrupt Function PC PC PCjr PC XT XT PS PS/2 PS/2 BIOS Comments 
code XT AT 12 /286 CVT 30 other 



67 



N/U 



OOOOOOO O 



O 



68 to 6B 


N/U 


O 


O 


o 


o 


o 
o 


o 
o 


o 

• 


o 
o 


o 


6C 


N/U 


O 


O 


o 


o 


o 


6D to 6F 


N/U 
N/U 


O 
O 


O 
O 


o 
o 


o 


o 
o 


o 

• 


o 
o 


o 
o 


o 


70 (IRQ 8) 


• 




71 (IRQ 9) 


N/U 


O 


O 


o 


• 


o 


• 


o 
o 
o 


o 
o 




72 (IRQ 10) 


N/U 
N/U 


O 
O 


O 
O 


o 
o 


• 
• 


o 
o 


• 
• 




73 (IRQ 11) 


o 




74 (IRQ 12) 


N/U 


O 
O 


o 
o 


o 


• 


o 
o 


• 
• 


o 
o 


o 
o 




75 (IRQ 13) 


N/U 


o 


• 




76 (IRQ 14) 


N/U 


O 


o 


o 


• 


o 


• 


o 


o 




77 (IRQ 15) 


N/U 


O 


o 


o 
o 


• 
o 


o 
o 


• 
o 


o 
o 


o 




78to7F 




O 


o 


o 


o 


80 to 85 




O 


o 


o 


o 


o 


o 


o 


o 


o 


86 to F0 




O 


o 


o 


o 


o 


o 


o 


o 


o 



F1 to FF 



OOOOOOO 



O 



O 



Reserved for user program interrupts, LIM EMS 
interrupt entry 

Not used 

System resume vector 

Not used 

Real-time clock INT 

Redirected to IRQ2 



PS/2 others: mouse interrupt 

Coprocessor, BIOS redirect to NMI interrupt (INT 2) 

Hard disk controller 

Not used 

Reserved by BASIC 

Used by BASIC when the BASIC interpreter is 
running 

Reserved for user program interrupts 



Notes: 


O 


= Not supported. 


tv = Topview function. 


• 


= Supported. 


NB = NETBIOS alters this function. 


• * 


= A superset is supported. 


EGA = Enhanced graphics adapter 


$ 


= These INT 15 functions are just operating 


(and video graphics array) function. 




system hooks. They perform no BIOS-level functions. 


N/U = Not used. 


3x9 


= Only on PC AT Models 319 and 339. 


D = Used for diagnostics only. 


339 


= Only on PC AT Model 339. 



All PC AT interrupts are valid for real mode only. 
The PC Portable, PC/370, and 3270 PC all use the PC XT BIOS. 
The AT/370 uses the PC AT BIOS. 

PS/2 other systems are the Micro Channel systems and the 
Models 50, 60, and 80. 

The Typematic rate of the 84-key PC AT keyboard is program- 
mable, but no explicit BIOS support is provided. Also, the AT's 



keyboard has an internal 1 6-key buffer. 
When a hard disk is present, the INT 1 3 disk interrupt is rerouted 
to INT 40 and INT 1 3 points to the hard disk BIOS. 
For the multiplex interrupt (INT 2F), AH contains the identifica- 
tion of the routine to be called, where IDs 00-7F are reserved for 
DOS and C0-FF are reserved for user applications. AL contains 
the function code. 



Table 3 
Mode 


: BIOS video modes. 

Type Max Alpha 
colors format 


Buffer 
start 


Display 
size 


Box 
size 


Max 
pages 


Supporting cards 


0,1 
2,3 


A/N 
A/N 


16 
16 

4 


40x25 
80x25 

40x25 


B8000 
B8000 

B8000 


320x200 
320x350 
320x400 
360x400 

640x200 
640x200 
640x350 
640x400 
720x400 

320x200 

640x200 


8x8 
8x14 
8x16 
9x14 

8x8 

8x8 

8x14 

8x16 

9x16 

8x8 


8 
8 
8 
8 

4 
8 
8 
8 
8 

1 

1 


PCjr, CGA, PC CVT, EGA, and PS/2 others 
EGA and PS/2 others 
PS/2 Model 30 
PS/2 others 

PCjr, CGA, and PC CVT 
EGA and PS/2 others 
EGA and PS/2 others 
PS/2 Model 30 
PS/2 others 

PCjr, CGA, EGA, and all PS/2 systems 

PCjr, CGA, EGA, and all PS/2 systems 

continued 


4,5 
6 


APA 
APA 


2 


80x25 


B8000 


8x8 



176D Inside the IBM PCs • BYTE 1987 Extra Edition 



IBM PC FAMILY BIOS COMPARISON 



Mode 


Type 


Max 
colors 


Alpha 
format 


Buffer 
start 


Display 
size 


Box 
size 


Max 
pages 


Supporting cards 


7 


A/N 


Mono 


80x25 


B0000 


720x350 
720x350 
720x400 
640x200 


9x14 
9x14 
9x16 
8x8 


1 
8 
8 
4 


MDAandPCCVT 
EGA and PS/2 others 
PS/2 others 
PC CVT 


8 


APA 


16 


20x25 


B8000 


160x200 


8x8 


1 


PCjr 


9 


APA 


16 


40x25 


B8000 


320x200 


8x8 


1 


PCjr 


A 


APA 


4 


80x25 


B8000 


640x200 


8x8 


1 


PCjr 


B,C 






-Reserved- 












D 


APA 


16 


40x25 


A0000 


320x200 


8x8 


8 


EGA and PS/2 others 


E 


APA 


16 


80x25 


A0000 


640x200 


8x8 


4 


EGA and PS/2 others 


F 


APA 


Mono 


80x25 


A0000 


640x350 


8x14 


2 


EGA and PS/2 others 


10 


APA 


16 


80x25 


A0000 


640x350 


8x14 


2 


EGA and PS/2 others 


11 


APA 


2 


80x30 


A0000 


640x480 


8x16 


1 


All PS/2 systems 


12 


APA 


16 


80x30 


A0000 


640x480 


8x16 


1 


PS/2 others 


13 


APA 


256 


40x25 


A0000 


640x480 


8x8 


1 


All PS/2 systems 




Notes 

APA = 

A/N = 
CGA = 
MDA = 


All points addressable (i.e., graphics mode) 
Alphanumeric (i.e., text-only mode) 
Color Graphics Adapter 
Monochrome Display Adapter 




EGA = Enhanced Graphics Adapter 

The cursor is not displayed in APA modes. 

Modes 0, 2, and 5 are identical to modes 1 , 3, and 4, except 
color burst is not enabled. (This doesn't affect RGB displays.) 




Transmitted 
Invoice 



Price, Qty, Parti 
Hatched 



Invoir* Staffped 
oded 



>&/ 



i 








c oT\»"- r charts- 

U* X ^Z center \f+*#* 
***** .too* \o***SZ* 



\0tl 





Checks Printed 
& Signed 












j. 






1 


T 


1 
1 




Check 
Regi ster 




Open 

Accounts 

Payable 




j (e) 


l — ► 


(e) 


T 




I/P 
Distribution 



eneral 






ml 



PATTON & PATTON 



81 Great Oaks Blvd., San Jose, CA 95119 
1-800/672-3470, ext 897 California 
1-800/538-8157, ext. 897 Outside California 
408/629-5044 International 
*plus shipping. In California add tax. 



Circle 164 on Reader Service Card 



BYTE 1987 Extra Edition 



Inside the IBM PCs 177 



IBM PC FAMILY BIOS COMPARISON 



Table 4: Low-memory reserved addresses. 

00000-002FF System i nterrupt vectors 

00300-003FF System interrupt vectors, power-on and bootstrap stack area 
00400-004EF BIOS data area 

00400-00406 COM 1 : to COM4: I/O port base addresses, one word each. 
00407-00408 LPT1 : to LPT4: * I/O port base addresses, one word each. 
00409-0040F Reserved 

0041 0-0041 1 Equipment flag word, returned in AX register by INT 1 1 . 
Bits Meaning 

14-15 Number of printers attached (0 to 3, LPTs) 
1 3 I nternal modem i nstalled (PC CVT) or serial printer i nstalled (PCjr) 
12 Joystick installed 
9-11 N umber of COM devices (0 to 4, COMs) 
8 Unused (PCjr only; DMA chip present on system) 
6-7 Number of disk drives (if bit is 1 ; 00= 1 , 01 =2, 1 and 1 1 not used) 
4-5 Initial video mode 

00 Unused 

01 40 x 25 BW using color card 
01 80 x 25 BW using color card 
1 1 Monochrome card 

2-3 Unused, or, in the PC, old PC XT, and PCjr, planar RAM size; 00= 1 6K bytes, 01 =32K bytes, 1 0=48K bytes, 
1 1 =64K bytes 

1 Math coprocessor installed (unused on PCjr and PC CVT) 

IPL disk installed. 

004 1 2 Reserved, except in PC CVT power-on self-test status 

00413-00414 Memory size in K bytes (0 to 640) 
00415-00416 Reserved 

00417 Keyboard Control 

Bits Meaning 
7 Insert locked 

6 Caps Lock locked 

5 N urn Lock locked 

4 Scroll Lock locked 

3 Alt key pressed 

2 Control key pressed 

1 Left shift key pressed 

Right shift key pressed 

00418 Keyboard Control 

Bits Meaning 

7 Insert key pressed 

6 Caps Lock key pressed 

5 Num Lock key pressed 

4 Scroll Lock key pressed 

3 Pause locked 

2 System request key pressed 

1 Left Alt key pressed 

Left Control key pressed 

00419 Alternate keypad entry 

0041 A-0041 B Keyboard buffer head pointer 

0041 C-0041 D Keyboard buffer tail pointer 

0041 E-0043D 32-byte keyboard buffer 

0043E-00448 Disk drive data area 

00449-00466 Video-control data area 1 

00467-0046 A Reserved, except PS/2 others, 00472= pointer to reset code upon system reset when memory is preserved. 

0046B Reserved 

0046C-0046F Timer counter 

00470 Timer overflow 

00471 Break key state 
00472-00473 Reset flag 

Bits Meaning 

1234 Bypass memory test 

4321 Preserve memory (PS/2 other only) 

5678 System suspended (PC CVT only) 

9 ABC Manufacturing test mode (PC CVT only) 

ABCD System POST loop mode (PC CVT only) 



178 Inside the IBM PCs • BYTE 1987 Extra Edition 



IBM PC FAMILY BIOS COMPARISON 



00474-00477 
00478-0047B 
0047C-0047F 
00480-00481 
00482-00483 
00484-0048A 
0048B-00495 

00496 

00497 
00498-00499 
0049A-0049B 
0049C-0049D 
0049E-0049F 

004A0 



004A1-004A7 
004A8-004AB 
004AC-004EF 
004F0-004FF 

500 

504 
00510-00521 
00522-0052F 
00530-00533 
00534-005FF 



Hard disk drive dataarea 

LPT1 : to LPT4: * time-out values, 1 byte each. 

COM 1 : to COM4: time-out values, 1 byte each. 

Keyboard buffer start offset pointer 

Keyboard buffer end offset pointer 

Video control data area 2 

Disk drive/hard disk drive control-data area 

(XT/2, AT, XT/286, and all PS/2s) 

Keyboard mode state and type flags 

Keyboard LED flags 

Offset address to user wait complete flag 

Segment address to user wait complete flag 

User wait count in microseconds, low word 

User wait count in ms, high word 

Wait active flag 

Bits Meaning 
7 Wait-time elapsed and posted flag 

6-1 Reserved 
INT 1 5, AH=86, Wait, has occurred. 

Reserved 

Pointer to video parameters and overrides 

Reserved 

Applications program communication area 

Print screen-status flag 

Single-drive mode status byte 

Used by BASIC 

Used by DOS for disk initialization 

Used by MODE command 

Reserved for DOS 



PS/2 systems don't support LPT4:. 



Table 5: Hardware interrupt request lines. 








Hardware 


PC and PC/XT 


PCjr 


PC CVT 


PC AT and XT/286 


PS/2 Models 


interrupt 


and PS/2 Model 30 






50, 60, 80 


request line 












NMI 


See notes 


Keyboard interrupt 


See notes 


Parity errors 


See notes 


IRQ 


Timer 


Timer clock interrupt 


Timer output 


Timer output 


Timer output 


IRQ 1 


Keyboard 


I/O channel (reserved) 


Keyboard (buffer full) 


Keyboard (buffer full) 


Keyboard (buffer full) 


IRQ 2 


Reserved 


I/O channel 


Reserved 


Cascade for 8 to 1 5 


Cascade for 8 to 1 5 


IRQ 3 


Serial port 2 


Serial port 2 


Serial port 2 


Serial port 2 


Serial port 2 


IRQ 4 


Serial port 1 


Modem or serial port 1 


Modem or serial port 1 


Serial port 1 


Serial port 1 


IRQ 5 


Hard disk (not PC) 


Display vertical retrace 


Reserved 


Parallel port 2 


Reserved 


IRQ 6 


Disk control 


Disk 


Disk control 


Disk control 


Disk control 


IRQ 7 


Parallel port 1 


I/O channel (parallel 


Parallel port 1 


Parallel port 1 


Parallel port 1 


IRQ 8* 




printer) 




Real-time clock 


Real-time clock 


IRQ 9 








Redirected to IRQ2 


Redirected to IRQ2 


IRQ 10 








Reserved 


Reserved 


IRQ 11 








Reserved 


Reserved 


IRQ 12 








Reserved 


Mouse 


IRQ 13 








Coprocessor 


Coprocessor 


IRQ 14 








Hard disk controller 


Hard disk controller 


IRQ 15 








Reserved 


Reserved 


* Interrupts 8 to 1 5 are not available 


on the PC, PC XT, PCjr, PC CVT, and PS/2 Model 30 






Notes: 












PC, PC XT, and PS/2 Model 30 use 


NMI for parity errors and numeric coprocessor interrupt. 




PC CVT uses 


NMI for I/O channel check, disk power-on request, keyboard, real-time clock alarm, or system suspend. 


PS/2 Models 50, 60, and 80 use NMI for parity errors, I/O channel check, watchdog timer, and arbitrator time-out. 




IRQ 3 and 4 (except in the PC CVT) r 


nay be used by SDLC or bisynchronous communication cards instead of serial ports. 



BYTE 1987 Extra Edition • Inside the IBM PCs 179 



IBM PC FAMILY BIOS COMPARISON 



Table 6: Expanded EMS function-call interfaces. This 


covers version 3.2 and is accessed via interrupt 67. 


AH = 


Function 


40 


Get manager status 


41 


Get page frame segment 


42 


Get number of pages 


43 


Get handle and allocate memory 


44 


Map memory 


45 


Release handle and memory 


46 


Get EMS version 


47 


Save mapping context 


48 


Restore mapping context 


49 


Get I/O port address 


4A 


Get logical-to-physical-page mapping 


4B 


Get number of EMM handles 


4C 


Get pages owned by handle 


4D 


Get pages for all handles 


4F-5F 


Reserved 


60 


Get physical window array 



Table 7: Multitasking hooks using Interrupt 15. 

Wait Function (AH=90, AL=type code). Used to tell the OS task 
dispatcher to dispatch another task while the current task 
waits for its I/O operation to finish. 

Post Function (AH=91 , AL=type code). I/O operation com- 
plete, which can be used to inform the OS task dispatcher that 
an I/O operation for a waitingtask has completed, and the 
task should now be moved to the ready queue. 

Type codes for Wait and Post functions 

00-7F Serially reusable device; OS must serialize access. 

00 Disk (time-out) 

01 Disk (time-out) 

02 Keyboard (no time-out) 

03 Pointing device (time-out) 

80-BF Reentrant devices; ES:BS points to a unique control 
block. 
80 Network (no time-out), ES:BX points to network control 
block. 

C0-FF Wait-only calls, no complementary Post function. 
Time-out on nonoccurrence of event. 
FC Fixed-disk reset, PS/2 only (time-out) 
FD Disk drive motor start (time-out) 
FE Printer (time-out) 



Table 8: BIOS-extension (ROM-area) addresses. 

C0000-C3FFF 1 6 K bytes EGA B I OS 

C4000-C5FFF 

C6000-C63FF 256 bytes PGA communication area 

C6400-C7FFF 

C8000-CBFFF 1 6K bytes hard disk BIOS 

CC000-CFFFF 

D0000-D7FFF 32K bytes cluster adapter BIOS 

D8000-DBFFF 

DC000-DFFFF 

E0000-EFFFF 64K bytes expansion ROM space (PC AT) 

F0000-FFFFF 64K bytes ROM BASIC and simple BIOS 



Note: PCjr uses D0000-DFFFF for expanded cartridges and 
E0000-EFFFF for standard cartridges. 



Table 9: NETBIOS modifications and additions to DOS 


functions. This 


covers version 1. 10. 


INT 


AH 


AL 




21 


3D 




Open file with sharing specified 




44 


09 


IOCTL, is device redirected? 






0A 


IOCTL, is handle local or remote? 






0B 


IOCTL, change sharing retry count 




59 




Get extended error 




5A 




Createtemporary file with unique 
name 




5B 




Create new file 




5C 


00 


Lock byte range 






01 


Unlock byte range 




5E 


00 


Get machine name 






02 


Set up printer-control string 




5F 


02 


Get assign list entry 






03 


Redirect device to network 






04 


Cancel redirection 


2A 


00 




NETBIOS installation check 




03 




Get device-shared status 




04 




Execute NETBIOS 




05 




Get network resource information 




06 




Network print-stream control 


2F 


87 


00 


Append installation check 






02 


Append version check 




88 


00 


Network command installation check 






03 


Get server post address 






04 


Set server post address 






09 


Network version check 



MOV AL, f B f ; Character to be 

printed, in this case 

a 'B» 
MOV DX,0 ; Print it on LPT1 

(Printer number minus 1) 
INT 17 ; Printer BIOS entry 

interrupt . 

The BIOS is extensible. When the 
POST routines run, as part of their opera- 
tion they scan the ROM address space for 
add-on routines, which are then invoked 
so that they can install themselves. The 
IBM EGA, for example, extends the 
video interrupt INT 10, as indicated in 
table 2. 



The rule for BIOS entries is one soft- 
ware interrupt per device. There may also 
be one or more hardware entries, and en- 
tries that point to tables or blocks of data 
used by the device driver. 

The interrupt vectors, used as pointers 
to data instead of code, allow easy alter- 
ation to the environment, such as chang- 
ing the character set displayed for 80 to 
FFbytheCGA. 

According to IBM, the only time you 
safely bypass the BIOS is when you ac- 
cess the following I/O ports: 21 -interrupt 
mask registers; 61-sound control; 40-, 
41-(Note: Don't change this port.), 
42-(timer frequency will remain fixed at 



1.19 MHz), and 201-game control 
adapter. 

Regarding absolute memory locations, 
note the following: Some functions have 
been added to interrupt vectors (0:0 to 
3FF), but no functions have been rede- 
fined. The video display memory maps 
(A000:0, B000:0 and B800:0) will not 
change for a given video BIOS mode of 
operation. If the bit map is altered, a new 
mode is defined to support it. ROM BIOS 
data areas (starting at 40:0) will retain 
their current definitions as long as the 
corresponding functions are defined. In 
other words, the definitions can change at 
the whim of IBM. ■ 



180 Inside the IBM PCs • BYTE 1987 Extra Edition 



IBMPC/XT/AT/PS2 
or COMPATIBLES, 

colour or mono. 

Floppy or hard disk. 

Minimum requirement: 

256KRAMandDOS2 

or later. Modem and 

printer optional. 




If you need a card file, you 
need Tracker. 

Tracker hunts down your 
important contacts fast. By 
company name, contact's 
name, date of your last 
conversation, zip code, type of 
business, or whatever name 
you care to give to the eight 
sortable fields. All in seconds. 
To a salesman it's a card 
index. 

Tracker lets you keep 
unlintitedsales lead files. 
Records of discussions and 
correspondence. It even 
assembles a daily list of who 
to contact. Then phone them 
using the autodial feature. 
All at the touch of a key. 
To a manager it's a client 
file. 

Tracker can list all your 
clients, their executives and 
key people. Keep details of 
each account: credit limits, 
parent companies, subsidiaries 
- whatever you need. On the 
same computer you might have 



Pull out 'cards' 
by any of 8 
fields. 



It's the bottomless index card! 
The Notes field is UNLIMITED, 
each note is date stamped. 



RAM resident or 
not - you choose. 



another file of personnel. 
Another of key suppliers. Up to 
10 separate databases all 
accessible in seconds, on your 
desk. 

To a retailer it's a mailing 
list. 
All those sales records and 
delivery receipts are a treasure 
chest of customers - if only you 
organized them. Tracker's so 
simple to use you can put them 
on file in no time. Then print 



address labels for direct mail 
with personalized letters. 
Tracker can talk to the major 
word processing programs. 



Whatever your business, 
Tracker can adapt to it. 

Tracker is the fast, 
inexpensive way to efficient 
organization. It's simple to use. 
And it's spreading like any 
miracle software should. 
Call us now at 
1-800-543-G'DAY. 

We'll rush you a free 
demonstration disk and the 
name of your nearest dealer. 



ONLY $99 



An unbelievable price for such a 




Version 2 

Adaptive USA, Inc. 3701 Birch St., Newport Beach, California 92660. 

TeH714) 852 1467. 
Circle 3 on Reader Service Card (Dealers: 4) BEATTY AV 592 us 



SECRET CULT 



m 





..j^mM 



EXPOSEDl 



fi 



Only a dedicated 
few knew that it 
even existed. 

But word travelled. 
And the ARC PC gained 
a small but ardent circle 
of admirers. 

Small, because ARC 
has always been more 
serious about making 
products than about pro 
moting them. You know 
how it is with engineer- 
ing-driven companies. 

Quietly, away from 
the hardware hubbub, 
a cadre of committed 
ARC engineers were 
fashioning fully IBM- 





compatible PC's that 
outperformed every- 
thing else on the market. 
Nobody could match 
ARC speed. The ARC 
Turbo 12 was the first 
PC to run at 12.5 MHz. 
TWice as fast as the 
original PC-AT, it's the 

Circle 256 on Reader Service Card (Dealers: 257) 



only PC with a 
: built-in speed- 
ometer. 

Not to 
mention 
the fact that 
we invented the 
first dual-speed 
PC in the industry. 
But speed was 
only for starters. 
ARC also beat the com- 
petition in on-board 
memory. Expand- 
ability (8 slots). Hard 
disk storage. More 
value per dollar. And 
compulsiveness about 
details: down to things 
like the quality of each 
weld. The solid con- 
struction of ARC ma- 
chines is legendary. 
So, ARC PC's attained 
cult status among some 
of the toughest computer 
jocks in the country. 
Now, the time has 
come to open things up 
a little. Why keep a good 
thing a secret any 
longer? 

Ask your computer 
dealer about the ARC 



family of fully compat- 
ible PC's, including our 
Model 10,Turbo 12, and 
new 386i. 
If your favorite dealer 





isn't part of the cult yet, 
we'll let him join, too! 
Call us at (213) 265- 
0835. Or write ARC, 1101 
Monterey Pass Road, 
Monterey Park, C A 91754. 




ARC Comdex Las Vegas 848 West Hall 



CTX 



THE BEST 14" MONITORS IN BOTH WORLDS 






Jiis^iOsiiiiiyii P^nMUk 



SSSSSBSSHS- 



CGA 

EGA 

VGA [PS-2] 

MUTLI-SCAN / ANALOG 



DUAL SCAN 

GREEN/ AMBER/ WHITE 

132 COLUMN 



ALL WITH TWO-YEAR WARRANTY 




U.S. HEADQUARTERS: CTX INTERNATIONAL, EMC. 

260 PASEO TESORO/WALNUT, CA 91789 

TEL: (714) 595-6146 FAX: (714) 595-6293 



EASTERN REGIONAL OFFICE 

CONTINENTAL TECHNOLOGY, INC 

300 McGAW DRIVE 

EDISON, NEW JERSEY 08837 

TEL; (201) 225-7377 FAX: (201) 225-6355 

PS-2 IS A TRADEMARK OF INTERNATIONAL BUSINESS MACHINES. 



NEW ENGLAND AREA 

MICRO-REP 

141 BROOKS ST., SUITE NO. 1 

BRIGHTON, MA 02135 

TEL: (617) 254-1469 FAX: (617) 783-4877 



FACTORY 

CHUNTEX ELECTRONIC CO., LTD. 
ROOM 401, NO. 50 SEC.l, 

HSIN-SHENG S. RD., 

TAIPEI, TAIWAN, R.O.C. 

TEL: (02) 3921171 FAX: (02) 3919780 



November 2-6. 1987 



)C©mDiH7Fall '87 <=— -"— 



Las Vegas, Nevada 



Circle 60 on Reader Service Card 
(Dealers: 61) 



INSIDE THE IBM PCs 



A new disk-allocation scheme in PC-DOS has important 
implications for long-term disk performance 



Comparing Disk-Allocation 

Methods 

Gregg Weissman 



PC-DOS 3.0 and MS-DOS 
3.0 and higher offer signifi- 
cant improvements to the 
speed and efficiency of disk- 
space allocation compared 
with previous versions. A 
careful study of the new and 
old methods, using simulation 
techniques, is instructive for 
operating-system designers 
and offers useful insights for 
anyone who uses a disk system 
for data storage. 

Previous versions of DOS 
use a fir st- fit algorithm. 
Every time a new file is 
created or an existing file is 
extended, DOS starts looking 
for unused space at the begin- 
ning of the disk's FAT (file-al- 
location table), scanning for- 
ward until it finds a free 
cluster (the minimum unit of 
disk space that can be allo- 
cated). Version 3 .0 and higher 
use the next-fit algorithm, in 
which DOS begins looking for 
a free cluster at the point 
where it last left off searching 
in the FAT. 

In his book The Art of Com- 
puter Programming, Vol. 1: 
Fundamental Algorithms (2nd 
ed., Addison-Wesley, 1974), 
Donald E. Knuth uses these 
terms in relation to memory- 
allocation algorithms, but the 
implications of the methods are almost 
the same for memory and disk allocation. 
The only difference is that, when allo- 
cating disk space, DOS is not concerned 
about the fit of a requested block; clusters 
are allocated as they are found and 
chained together in the disk FAT. On the 
other hand, memory-allocation requests 
can fail if there are not enough bytes in 
any one contiguous block of memory to 
satisfy an allocation request. 

Difficult mathematics are required for 




a theoretical analysis of the properties of 
first-fit and next-fit methods. Therefore, 
as Knuth did, I turned to simulation tech- 
niques. I wrote a program in Turbo Pas- 
cal to simulate disk activity and then ran 
simulations exploring the complex inter- 
actions of simulation and algorithm 
parameters. 

The Algorithms Explained 

The first step was to define the first-fit 
and next-fit algorithms. 



Listing 1 is the pseudocode 
of the first-fit algorithm as I 
coded it in the simulations. 
The variable FAT [ ] is an array 
that represents a disk's FAT. S 
counts the number of times 
the routine has to look for a 
free cluster, a statistic used in 
analyzing performance. Re- 
quest is the input parameter, 
the number of blocks that are 
requested. 

The next-fit algorithm, pre- 
sented in listing 2, is almost as 
simple. The only additions are 
a global or, if supported as in 
Turbo Pascal, a local static 
variable, Last, which points 
to the most recently used loca- 
tion in the FAT, and a little 
extra housekeeping to keep 
the FAT index within range. 

Instead of beginning the 
search for free clusters at the 
beginning of the FAT each 
time, the simulation now 
starts just after the location 
where it last left off, as indi- 
cated by the Last pointer. 
When the index into the FAT 
reaches the end of the table, it 
is reset to the beginning. 

The Simulation Goals 

Before designing a simula- 
tion, you need to decide what 
you want to measure. Obvi- 
ously, speed and efficiency are the key 
quantities, but how do you measure 
these? 

Time to allocate space is directly pro- 
portional to the number of processor 
cycles needed to complete an allocation 
operation. Thus, the number of scan op- 

continued 

Gregg Weissman is a software consultant 
and partner at E-X-E Software Systems 
(205 East 78th St. , New York, NY 10021). 



Illustration: Tom Centola © 1987 



BYTE 1987 Extra Edition • Inside the IBM PCs 185 



DISK-ALLOCATION METHODS 



erations (S in the programs) makes a suit- 
able measure. 

Fragmentation— the degree to which 
files are not in contiguous clusters on the 
disk— is another key factor in determin- 
ing disk-access time; DOS and the disk 
drive have to do more work to read or 



write a given amount of data when the 
space is highly fragmented than when it is 
contiguous. Specifically, fragmentation 
is the ratio of contiguous clusters to total 
clusters allocated for every file on the 
disk. 

I wanted the simulation to model the 



Listing 1: Pseudocode for the first-fit disk-allocation method. 

IF Request > Blocks_Free THEN exit {Create fails} 
Index := 1; {Start of file-allocation table} 
WHILE Request > 0D0 
BEGIN 
IF FAT [Index] = Free THEN 
BEGIN 
FAT [Index] := Allocated; 
Request : = Request - 1 
END 
ELSE 
S : = S + 1; {Scans for free blocks, global variable} 
Index : = Index + 1 
END {end while} 



Listing 2: Pseudocode for the next- fit disk-allocation method. 

IF Request > Blocks_Free THEN Exit {Create fails} 
Index := Last; {Last is global, initialized to 1} 
WHILE Request > DO 
BEGIN 
IF FAT [Index] = Free THEN 
BEGIN 
FAT[Index] : = Allocated; 
Request : = Request - 1 
END 
ELSE 
S : = S + 1; {Scans for free blocks, global variable} 
Index := Index + 1; 
IF Index > FAT-Size THEN 
Index := 1; 
END {end while} 
Last := Index; 



Listing 3: Pseudocode for the allocation time simulation. 

For each iteration in the simulation DO 
BEGIN 
Adjust p( create) according to simulation criteria 
Select Delete or Create with uniform distribution 
IF Create THEN {RAND < = p (create) } 
BEGIN 
Create a file of exponentially distributed size with mean M 
Return scans_for_free_b locks 
If insufficient room or directory full, GOTO Fail 
u : = Percent_of _disk_used 

MS[u] : = MS[u] + Scans_f or_f ree_blocks/Blocks_allocated 
Count[u] := Count [u] + 1 
END 
ELSE {it is a delete:} 
Select a created file with uniform probability and delete it 
Fail: (Come here to skip a creation that is impossible) 
END 

{Simulation done: output results} 
FORu :=1T0100D0 
WRITELN(MS[u]/Count[u] ) 



typical usage patterns of a personal com- 
puter user regarding the creation and de- 
letion of files over time and the distribu- 
tion of the user's file sizes. 

I used a random uniform distribution 
of file creations and deletions. At each it- 
eration of the simulation, I generated a 
uniformly distributed random number 
between and 1 and performed a file 
create if the number was less than or 
equal to a threshold value. Otherwise, I 
deleted a file using a uniform random 
selection. 

To model disk use over the long run, I 
designated upper and lower disk-capacity 
thresholds. When disk allocation ex- 
ceeded the upper threshold, I decreased 
the file-create probability (p( create) in 
this article) to below 50 percent; this 
would free up space over time. When 
disk allocation fell below the lower 
threshold, I increased the file-create 
probability to above 50 percent to in- 
crease the disk utilization over time. 

Another way to model space alloca- 
tion/deallocation (one Knuth explores in 
his book) is to assign to each memory 
block (or file) a random lifetime; at each 
iteration in the simulation, blocks (or 
files) whose lifetimes have expired are 
deleted. Interested readers might wish to 
explore how the lifetime distribution af- 
fects performance of the first-fit and 
next-fit allocation methods. 

Determining file-size distribution was 
more difficult. Examining the file sizes 
on my own hard disk showed the distribu- 
tion represented in figure 1, with file 
sizes shown as a percentage of total disk 
capacity. As an approximation of this dis- 
tribution, I assumed an exponential 
distribution 

r = -logOt) X M, 

where x is a uniformly distributed ran- 
dom variate between and 1 , and M is the 
desired mean file size. 

Time Simulation 

The first set of simulations explored the 
speed of the two algorithms, answering 
the question: "How do the two methods 
compare in speed as the disk fills up?" 
More precisely, I wanted to plot the mean 
number of scans for a free block per 
block allocated, as a function of the per- 
centage of the disk used. Listing 3 gives 
the pseudocode for the time simulation. 

To ensure an adequate sample popula- 
tion in each percentile of disk space used, 
I set the number of iterations to 5000. I 
varied the mean file size to examine its 
impact on performance and defined the 
FAT size as 1000 blocks. When the FAT 
was greater than 99 percent full, 

continued 



186 Inside the IBM PCs • BYTE 1987 Extra Edition 



900 -i 






800 - 






700 - 






S 600 - 






£ 500 - 






0) 

■| 400 - 
Z 300 - 


■ 




200 - 


1 




100 - 


till . 




n -- 


Illliil. ■■■_... 




u i i i i i i 
0.05 0.10 0.15 0.20 0.25 


T 
0.30 


File size as percent of disk capacity 





Figure 1: Typical file-size 
distribution over a hard disk, 
expressed in percent of hard 
disk capacity. 




Figure 2: A simulation plot 
showing the mean number of 
scans required per block 
allocated as a function of disk 
utilization; three runs are 
plotted. The first-fit 
algorithm was used. Note the 
direct linear relationship 
between disk utilization and 
scans required. In this 
simulation, disk capacity is 
1000 blocks, and the mean 
file size is 1 percent of disk 
capacity. 



Figure 3: The same as figure 
2, but the next-fit algorithm 
was used, and mean file sizes 
for three runs are 0.5, 1, and 
2 percent of disk capacity. 
Note that the number of scans 
remains at a constant low 
level until the utilization 
reaches 90 percent. 



BYTE 1987 Extra Edition • Inside the IBM PCs 187 



DISK-ALLOCATION METHODS 



p( create) was set to 0.25. When the 
FAT utilization dropped below 50 per- 
cent, p( create) was set to 0.55. There- 
fore, most activity took place with the 
disk between 50 and 100 percent full. 

Figure 2 shows a plot of mean scans 
per block allocated as a function of the 
percentage of disk space used, for three 
runs of the simulation using the first-fit 
algorithm. The mean file size was 1 per- 
cent of disk space. 

The trend of each plot is linear, indi- 



cating a direct relationship between disk 
space used and the time required to allo- 
cate more. I ran simulations with differ- 
ent mean file sizes and found that the rate 
of time increase was fastest with the 
smaller file sizes. Regression analysis 
gave slope coefficients of 1.56, 1.05, and 
0.69 for mean file sizes of 0.5, 1, and 2 
percent, respectively. The intuitive ex- 
planation for this inverse relationship is 
that larger files leave larger holes when 
they are deleted, making it easier to sub- 



Listing 4: Pseudocode for the fragmentation simulation. 

For each iteration in the simulation do 
BEGIN 

Adjust p( create) according to simulation criteria 
Select Delete or Create with uniform distribution 
IF Create THEN{RAND <= p( create) }, 
BEGIN 
Create a file of exponentially distributed size with mean M 
IF insufficient room or directory full, GOTO Fail 
IF Iteration MOD 100 = then 

WRITELN ( Iteration, Percent_contiguous , percent_utilized) 
END 
ELSE {It is a delete} 
Select a created file with uniform probability and delete it 
Fail: {Come here to skip a creation that is impossible} 
END {end while} 



sequently find free clusters. 

Other simulations not illustrated here 
show that the rate at which performance 
degrades is directly proportional to FAT 
size. That's to be expected: The larger 
the FAT, the greater the number of clus- 
ters that must be searched. 

Figure 3 shows the results for the same 
conditions as in figure 2, using the next- 
fit allocation scheme. The difference is 
extreme: The speed of allocation barely 
degrades until the disk is almost full. 
Even when the disk is almost completely 
filled (99 percent), the worst-case perfor- 
mance is better than first-fit by a factor of 
10. This result is consistent with Knuth's 
results for memory allocation. 

When only one free cluster is left, the 
average number of scans will be half the 
FAT size and may be as much as the FAT 
size itself. This explains the steep knee of 
the curve as disk utilization approaches 
100 percent. 

Subsequent tests I performed showed 
that the next-fit performance is unaf- 
fected by mean file size. 

Fragmentation Simulation 

The question to be answered by the frag- 
mentation simulation was: "After a large 

continued 



Two great reasons to buy furl 

System Builder $149.95 and Report 

From the Designer Series by Royal American Technologies. 



State-Of-The-Art Program Gener- 
ators that automatically build a 
Relational Database system with 
out coding. Entry level "coders" 
can produce Database systems 
without coding. Developers 
have more flexibility and horse- 
power than any development 
tool on the market. 

Sell-documentingprogram Includes 
screen schematics. System Builder 
will generate 2,000 lines of program 
code In approximately 6 seconds. 



SYSTEM BUILDER FEATURES 



■ Automatically generates Indented, Structured, Copy Book Source Code 
ready for compiling with 1\irbo Pascal (no programming needed) 

• Paint Application and Menu screens using Keyboard • Screens all use 
In-Line machine code for exceptional speed • 16 Dataf iles and 16 Index 
Keys per application * Paint functions include: —Center, copy, move, 
delete, insert or restore a line with one keystroke —Cut and paste blocks 
of text screen to screen —Draw and erase boxes —Access special graphic 
characters and character fill —Go straight from screen to screen —Define 
colors and intensities • S upport an unlimited number of memory variables 

■ File Recovery Program • automatically modify existing dataf iles 

• Experienced developers can modify the System Builder • Develop sys- 
tems for Floppy or Hard Disk • Modify System Builder's output source 
code to include External Procedures. Functions and Inline Code • Easy- 
to-use Interface Program included to access ASCII and Dbase Files 

REPORT BUILDER FEATURES: 

• Automatically generates Indented, Structured Source Code ready for 
compiling Turbo Pascal (no programming needed) • Automatically inter- 




" I think it's wonderful . . . prospec- 
tive buyers should seriously con- 
sider DESIGNER even before 

"BASE HI." IfcOqlM 

Corporate Accounts Manager, 

Computerland 

"We used DESIGNER last year to 
program a major application. It 
saved our programmers so much 
time. Wenow use DESIGNER in- 
stead of dBASE III as our devel- 
opmentstandard." 

Mr. Peter Barge, Director 

Services Division, Horwath & Horwath 

(10th largest accounting firm in U.S.) 



faces to a maximum of 16 Dataf iles created with System Builder • Supports 
Global Parameters such as Headings, Footers, Lines Per Page, Print Size 
and Ad Hoc Sorting • Page breaks on Sub-Totals • Reports can also in- 
clude Text Strings, Variables or Computed expressions containing refer- 
ences from up to 16 Datafiles • Use range input screensallow End Users 
to select portions of a report as needed(i,e, specific account ranges can be 
requested) • Easy-to-use Interface Program included to access dBase Files 



<^RGYAL 



SYSTEM BUILDER PERFORMANCE 

(Typical 10 screen 8 file/index application) 

TASK SYSTEM BUILDER DBASE III™ 

Planning and Design 60 minutes 60 minutes 
Screen Painting 1 5 minutes 3 hours 

Programming 2 minutes 10 hours 

Elapsed time to 1 hour and 1Jhftlirc 

completed system 17 minutes ' * nours 



leckwixjiet $yxfta£m' 1 



VARS, System Integrators and Dealers, let's 
work together. Headoffice: (415)397-7500 



seal: 



S1 29.95 



Royal American Technologies 
320 Harris Ave. Ste. A 
Sacramento CA 95838 

(800)654-7766 

in California (800)851-2555 
Ask for Operator 102. 

Please rush me: copies of SYSTEM 

BUILDER atS149.95acopy; copies 

of REPORT BUILDER at S 129.95 per 
copy. I've enclosed $.6.00 for postage 
and handling. California residents add 6% 
sales tax. 



City_ 
State. 



_Zip_ 



Payment: □ Check □ Money Order □ Cashiers 
Check DAMEX DVISA □ MASTERCARD 



Expiration date _ 



Signature 

30-Day Money-Back Guarantee. Not copy- 
protected. $10 restocking tee it" envelope is opened. 
System Requirements: IBM PC/XT/ AT', or similar, wiih 
minimum 256K RAM. dual floppy drives, or hard disk, 
color or monochrome monitor. MS- or PC DOS' version 
2.0 or later, Itobo Pascal Version 2.0 <x iMta (Normal. 
BCD or 8087 versions). 

^Trademark of Intcrnitmrul Business Machine* Corp. 
Trademark of Microsoft Corp. 

"Turbo Pascal isa reunuredirademarkol Borland Inlcinaliunal. 
'"dBASE is a registered trademark (if Ashiou Tale. 



188 Inside the IBM PCs • BYTE 1987 Extra Edition 



Circle 197 on Reader Service Card 



The JET- SETTER, laser printer. 

The secret to my success. 




In business, your first impression may be 
your last. 

That's why I purchased the C. Itoh Jet-Setter 
laser printer. It's the first personal laser designed 
for achievers like me. And it's affordable! 

First impressions are 
lasting impressions. 

When I first started using the Jet-Setter to print 
daily reports, memos and budgets, my associates 
couldn't believe how I instantly gained esteem 
from top management. 

But what really sold them on my talents was 
when I closed an account the firm had been 
working on for months with a business pre- 
sentation printed on — you guessed it — the 
Jet-Setter. 

Now everyone wants to get in on the action. 
And wait until they find out how affordable Jet- 
Setters are. They won't even need to purchase 
any additional software since it's compatible 
with the HP LaserJet™ series and uses optional 
Diablo™ and Epson™ emulation cartridges. 

Circle 67 on Reader Service Card (Dealers: 68) 



Anyone can use it. 

My secretary already has an eye on theJet-Setter 
to handle the volume of text generated on 
WordPerfect™ and other word processing files. 
And you should have seen the response I got 
when I presented my quarterly report with eye- 
opening charts and graphs instead of just 
numbers. Even our communications manager 



wants to purchase the Jet-Setter to publish 
internal newsletters using Ventura Publishing™ 
or PageMaker,™ desktop publishing packages. 

The Jet-Setter grows with your business 

As more people catch on to the Jet-Setter revolu- 
tion in my office, they will discover even more 
exciting features this printer offers, like its large 
library of font cartridges 




Helv, 10 point, pro| 
Roman, 10 point, pi 
Roman Italic, 10 po 
Roman Bold, 10 poi 



With the C. Itoh Jet-Setter laser printer you can 

create professional business letters, 

presentations and newsletters. 



and expansion memory 

for full page graphics at 

300 dots per inch. The 

secret to my success? The 

Jet-Setter from C. Itoh. How long can you afford 

to be without one of your own? 

For the C. Itoh dealer nearest you, call: 

Toll-free (800) 423-0300 

CITOH 

C. Itoh Digital Products, Inc. 

19300 S. Hamilton Av., Ste. 110 • P.O. Box 9085 
Torrance, CA. 90508 • (213) 327-2110 



B YTE1987Extra Edition 



Inside the IBM PCs 189 



Figure 4: File-fragmentation 
patterns over the course of 
25, 000 file-create/delete 
operations, using the first- fit 
algorithm. Note how quickly 
the percent contiguous drops 
to the 60 to 70 percent range. 
Disk capacity is 10,000 
blocks, and the mean file size 
is 0. 2 percent of disk 
capacity. 



100 - 






co 90 - 


^A Percent contiguous 




3 
O 

I 70 - 
o 




f*i 


percent 

o o 

1 1 






| 40 - 

3 30- 

c 






S 20 - 

%m 

a 10 - 


/ Percent utilized 




- 






1C 


■ i i i l 
)0 5100 10,100 15,100 20,100 25,000 




Iterations 





Figure 5: The same as figure 
4, but the next-fit algorithm 
was used. Percent contiguous 
remains at a constant high 
level under the usage pattern 
selected for this simulation. 
With other usage patterns 
(not shown), percent 
contiguous drops to 90 
percent but remains relatively 
constant. 



100 -| 

n 90- 




Percent contiguous 






3 - 








O 








§> 80 - 
















c ^ 








o 70- 








o 








+* 








£ 60 - 








o 








k. 








8. 50 - 








•d 








S 40 - 


J 






^5 








f 30- 








c 


y Percent utilized 






§ 20 - 








cp 








o- ^ 








10 - 








n — 








u 
1C 


)0 5100 


i i i i 
10,100 15,100 20,100 25,000 






Iterations 





Figure 6: In modified next-fit 
simulation, resetting the 
last-position pointer after 
every 100th iteration brings 
the percent contiguous down 
to around 85 percent, 
in close agreement with 
measurements on an actual 
disk. 




1 1 1 

100 5100 10,100 15,100 

Iterations 



20,100 



1 

25,000 



190 Inside the IBM PCs •BYTE 1987 Extra Edition 



DISK-ALLOCATION METHODS 



amount of random file creations and dele- 
tions, which algorithm minimizes file 
fragmentation?" To see the answer, I 
plotted the percentage of all allocated 
clusters that are contiguous as a function 
of the total number of disk operations. 

To collect the data, I calculated the 
percent of contiguous clusters every 100 
iterations and wrote the value to a disk file 
to analyze later. Listing 4 is the pseudo- 
code for the fragmentation simulation. 

All simulations ran for 25,000 itera- 
tions and used a mean file size of 20 
blocks, or 0.2 percent of a 10,000-block 
FAT. I repeated the simulations for differ- 
ent usage patterns by varying p ( create) , 
the probability of file creation, and the 
upper and lower thresholds at which 
p( create) is adjusted. 

Figures 4, 5, and 6 show the simulation 
results for first-fit and next-fit allocation 
schemes. The x axis represents the num- 
ber of iterations. Plotted against x are the 
percent of disk space used and the percent 
contiguous. 

With the first-fit method (see figure 
4), files become more fragmented (i.e., 
the percent contiguous decreases) fairly 
steadily as the number of file-create/de- 
lete operations increases. After 25,000 
iterations, the percent contiguous drops 
to around 60 percent. My hypothesis says 
that as the number of iterations increases 
without bound, the percent contiguous 
stabilizes at around 50 percent. 

With the next-fit method, the percent 
contiguous stays in the region of 90 per- 
cent and up, almost unperturbed by the 
random file-creation and file-deletion ac- 
tivity (see figure 5). 

A Reality Check 

The simulated next-fit performance 
seemed almost too good to be true, 
prompting me to verify the situation. I 
obtained statistics for my own hard disk, 
a 20-megabyte drive running under PC- 
DOS 3. 1 , and found that out of 7084 allo- 
cated clusters, 5858 were contiguous; the 
percent contiguous was 82.7. The disk 
had been in use for about a year without 
reformatting and was 68 percent full, so it 
should have been less fragmented accord- 
ing to the simulations. 

However, the variable in memory that 
DOS uses to point to the next available 
cluster (Last in the pseudocode) is reset 
each time you turn of f the computer— or, 
in the case of removable media, when you 
remove the disk. In effect, the allocation 
scheme reverts to first-fit whenever you 
turn off the computer or remove media. 
This accounts for a somewhat reduced 
percent contiguous. 

I ran another set of simulations in 
which Last is reset every 100 iterations, 
equivalent to shutting a computer down 



after every 100 file-create and file-delete 
operations. Figure 6 shows the results of 
this modified simulation. Fragmentation 
reaches and remains at around 85 per- 
cent—close to the actual conditions of my 
own hard disk. 

A Good Fit 

The simulation indicates that operating- 
system designers have an easy choice of 
disk-allocation algorithms: Next-fit is the 
way to go. For hard disk users, the con- 
clusion is just as obvious: Upgrade to 
DOS 3.0 or higher. 



A number of utility programs offer to 
optimize your disk performance by reor- 
ganizing your files to make them contigu- 
ous. However, if your operating system 
uses the next-fit allocation scheme, you 
might not find such utilities beneficial. 
Since fragmentation will reach the 20 
percent level fairly quickly, you gain lit- 
tle by restructuring the entire disk unless 
you do it fairly often. Considering that 
safe operation of these utilities requires 
making a full disk backup, the minor and 
short-lived performance improvement 
might not warrant the effort. ■ 



12 REASONS WHY 

TELEBYTE TAPE DRIVES 

ARE WORTH THE 

MONEY 




They are - 

1. PC/XT/AT and 386 Compatible 

2. True Start/Stop outperforming streamers by margins of 
6 to 1 with a minimum 16K host buffer 

3. Fully integrated into DOS and Xenix 

4. Supports both 1600 BPI PE and 800 BPI NRZ 

5. Write protection sensing 

6. Mainframe format conversion into DB III and 123 

7. Provided with a single shielded cable PC interface 

8. External cable connection on rear of PC 

9. High level language accessible through standard file I/O 

10. Precision mechanisms in dust proofed enclosures 

11. Unsurpassed in reliability 

12. Backed by a company that manufactures the entire system 

TELEBVTE 

(800)835-3298 TECHNOLOGY INC 270 E. PULASKI RD 
(516) 423-3232 GREENLAWN, NY 11740, 



Circle 225 on Reader Service Card B Y T E 1987 Extra Edition • Inside the IBM PCs 191 



I 



Announcing BYTE's 
New Subscriber Benefits 



Y 



.our BYTE subscription brings 
you a complete menu of the latest 
in microcomputer technology every 
30 days. The kind of broad-based 
objective coverage you read in 
every issue. In addition, your 
subscription carries a wealth of 
other benefits. Check the check 
list: 

BONUSES 

Ej Annual Separate Issues: In 
addition to BYTE's 12 monthly 
issues, subscribers also receive 
our annual IBM PC issue free 
of charge, as well as any other 
annual issues BYTE may 
produce. 

EJ BYTE Deck: Subscribers 
receive five BYTE postcard 
deck mailings each year — a 
direct response system for you 
to obtain information on 
advertised products through 
return mail. 

S Reader Service: For information 
on products advertised in 
BYTE, circle the numbers on 
the Reader Service card 
enclosed in each issue that 
correspond to the numbers for 
the advertisers you select. Drop 
it in the mail and we'll get 
your inquiries to the advertisers. 

El TIPS: BYTE's Telephone 
Inquiry System is available to 
subscribers who need fast 
response. After obtaining your 
Subscriber I.D. Card, dial TIPS 
and enter your inquiries. You'll 
save as much as ten days over 
the response to Reader Service 
cards. 

EJ BYTE's BOMB: BYTE's 
Ongoing Monitor Box is your 



Program 



THE SMALL SYSTEMS JOURNAL 



Number -^» » 

Crunching 




direct line to the editor's desk. 
Each month, you can rate the 
article^ via the Reader Service 
card. Your feedback helps us 
keep qp to date on your 
information needs. 

53 Subscription Service: If you 

have 4 problem with, or a 
questipn about, your subscrip- 
tion, you may phone us during 
regular business hours (Eastern 
time) at our toll-free number: 
1-800^423-8912 (in N.J., 
201-981-1963). You can also use 
Subscription Service to obtain 
back issues and editorial indexes. 

PAID SERVICES 

E) BIX: BYTE's Information 
Exchange puts you on-line 24 
hours a day with your peers 
via computer conferencing and 
electronic mail. All you need to 
sign up is a microcomputer, a 
modem, and telecomm soft- 
ware. For further information 
and cost call 1-800-227-BYTE. 



|Vj Program Listings: Listings of 
programs that accompany 
BYTE articles are now avail- 
able on BIX, on disks or in 
quarterly printed supplements 
(see reply cards in this issue for 
cost information), or call 
1-800-258-5485. 

[3 Microform: BYTE is available 
in microform from University 
Microfilm International in the 
U.S. and Europe. See Contents 
page for cost information. 

DISCOUNTS 

[3 B issues instead of 12 if you 
send payment with subscription 
order. 

B One-year subscription at $22 
(50% off cover price). 

El Two-year subscription at $40. 

|Vj Three-year subscription at $58. 

B One-year group subscription for 
ten or more at $18.50 each. 
(Call or write for details.) 

TOLL-FREE NUMBERS FOR 
YOUR CONVENIENCE: 

Subscriptions & Back Issues: 

1-800-423-8912 (in N.J. , 
201-981-1963) 

BIX: 1-800-227-BYTE 

Program Listings Orders: 

1-800-258-5485 

And. . . welcome to 
BYTE country! 



BVIE 

THE SMALL SYSTEMS JOURNAL 



"M 



' 



INSIDE THE IBM PCs 



Multidimensional analysis: 
a new way to assess computer performance 



Rating the IBM 
Compatibles 

Robert G. Brookshire 



A potential buyer of an IBM- 
compatible computer faces a 
bewildering variety of claims 
about features, capability, and 
performance. Despite their 
similarity to the IBM family 
of computers, these machines 
differ in a number of dimen- 
sions, making comparisons 
between them difficult. I will 
present a summary ranking of 
35 IBM-compatible com- 
puters based on a multidimen- 
sional scaling analysis of 
seven of BYTE's standard 
measures of performance. 
You should not use this rank- 
ing as the sole basis for evalu- 
ating these computers, but it 
will help to simplify the com- 
plex task of comparing them. 

Measures of Computer 
Performance 

Since June 1984, BYTE has 
used a standard set of bench- 
mark tests in its personal- 
computer reviews. Two tests, 
the Sieve and Calculation 
benchmarks, measure the 
CPU's speed. Two others 
measure the speed with which 
the computer writes and reads 
a 64K-byte file to and from 
disk. A fifth test compares the 
times required to copy a 40K- 
byte file to a floppy disk using 
the COPY command. The reviewer con- 
ducts each test three times and averages 
the results. I did not use the results of the 
Disk Copy test in this analysis, since this 
test is not applied to all machines. [Edi- 
tor's note: For more details on these 
benchmarks, see "Benchmarking the 
Clones " by Jon R. Edwards and Glenn 
Hartwig in BYTE's Inside the IBM PCs, 
Fall 1985.] 

Two additional benchmarks test 
spreadsheet performance (using Micro- 




soft Multiplan) . These tests measure the 
speed with which the computers load and 
recalculate a spreadsheet with 25 rows 
and 25 columns, in which each cell is 
1.001 times the cell to its left. Table 1 
shows the results of the seven bench- 
marks, as well as summary statistics for 
35 personal computers that use the MS- 
DOS or PC-DOS operating systems. 

I omitted the Hewlett-Packard 1 10 and 
the Stearns Desktop Computer because 
not all their benchmark results were pub- 



lished in BYTE. Results for 
the IBM PC, which are rou- 
tinely reported in each review, 
are included. The model num- 
ber and clock speed of the 
CPUs used in these computers 
(as reported in the reviews) is 
also in table I . 

The seven benchmark tests 
give seven separate measures 
of performance for personal 
computers. Although the re- 
sult of each test is informative 
in itself, it is difficult to com- 
pare two or more computers 
that have seven sources of per- 
formance variation. BYTE 
does not provide a summary 
measure of performance 
based on these tests. It is pos- 
sible, however, to compare 
and summarize the bench- 
mark results for a large num- 
ber of computers by using 
multidimensional scaling. 

The Method 

Multidimensional scaling is a 
mathematical technique for 
representing the configuration 
of variates in one-, two-, or 
higher-dimensional space (see 
references 1 and 2 for a thor- 
ough explanation of the meth- 
od). It is applied in the social 
and behavioral sciences to re- 
veal the structure that under- 
lies relationships between objects, or to 
reduce the dimensionality of a set of vari- 
ables. The data that is input to a multi- 

continued 

Robert G. Brookshire holds a Ph.D. in 
political science from Emory University. 
He is director of academic computing at 
James Madison University and can be 
reached at the Academic Computing Cen- 
ter, James Madison University, Harri- 
sonburg, VA 22807. 



Illustration: James Yang © 1987 



BYTE 1987 Extra Edition 



Inside the IBM PCs 193 



RATING THE IBM COMPATIBLES 



Table 1: Benchmark test 


results and CPU characteristics f 


or 3 5 personal computers. All times are in 


seconds. 
















Spreadsheet 




Clock 


Computer 


Disk 


Disk 


Sieve 


Calcu- 


File 


Load 


Recal- 


CPU 


Speed 




Write 


Read 




lation 


Copy 




culate 


Type 


(MHz) 


Epson Equity III 


25.0 


24.0 


54.0 


16.0 


4.7 


6.2 


2.8 


80286 


8 


Western AT 


26.0 


24.0 


43.0 


13.0 


4.2 


6.2 


2.5 


80286 


8 


Zenith Z-241 


26.0 


25.0 


57.0 


17.0 


5.7 


6.3 


3.0 


80286 


6 


Zenith Z-248 


27.0 


25.0 


43.0 


13.0 


4.8 


6.0 


2.5 


80286 


8 


IBM PC 


56.0 


46.0 


191.0 


69.0 


5.8 


8.1 


11.0 


8088 


4.77 


Epson Equity I 


56.0 


54.0 


191.0 


58.0 


7.7 


9.5 


9.9 


8088 


4.77 


Kaypro PC 


55.0 


30.0 


186.0 


57.0 


8.2 


8.6 


10.0 


8088 


4.77 


MPF-PC/700 D1 


31.0 


29.0 


114.0 


34.0 


7.6 


7.7 


6.1 


8088-2 


8 


Compaq Portable II 


31.0 


29.0 


54.0 


16.0 


5.8 


6.5 


2.8 


80286 


8 


Leading Edge Model D 


56.0 


30.0 


190.0 


58.0 


8.2 


8.1 


10.0 


8088 


4.77 


Xerox 6060 


22.0 


14.0 


85.0 


26.0 


6.7 


6.6 


4.6 


8086 


N/A 


NCR PC6 


31.0 


30.0 


113.0 


34.0 


6.0 


8.1 


6.0 


8088-2 


8 


Sperry PC/IT 


9.0 


8.8 


44.0 


14.0 


.7 


1.2 


2.0 


80286 


7.16 


ITTXTRAXP 


10.0 


10.0 


60.0 


20.0 


4.8 


2.9 


3.2 


80286 


6 


Conquest Turbo PC 


30.0 


30.0 


130.0 


40.0 


9.5 


9.4 


7.5 


8088-2 


8 


Deskpro 286 


26.0 


30.0 


54.0 


16.0 


9.1 


5.7 


2.9 


80286 


8 


Tele-286 


25.0 


24.0 


54.0 


16.0 


3.5 


4.9 


2.8 


80286 


8 


Executive Partner 


31.0 


29.0 


90.0 


28.0 


9.1 


6.1 


5.1 


8086-2 


7.16 


Kaypro 286i 


24.0 


23.0 


73.0 


22.0 


8.2 


7.3 


4.1 


80286 


6 


Canon A-200 


57.0 


29.0 


132.0 


41.0 


13.0 


8.0 


7.4 


8086 


4.77 


Color Fox 


35.0 


30.0 


297.0 


94.0 


11.0 


13.0 


17.0 


8088 


3.6 


AT&T PC 6300 


32.0 


30.0 


87.0 


27.0 


10.0 


7.0 


4.9 


8086-2 


8 


Data General/One 


56.0 


55.0 


229.0 


69.0 


12.0 


26.0 


14.0 


80C88 


N/A 


Sanyo MBC-775 


30.0 


29.0 


154.0 


35.0 


8.0 


7.7 


6.3 


8088-2 


8 


Ericsson 


57.0 


31.0 


182.0 


56.0 


9.3 


9.4 


10.0 


8088 


4.77 


Portable STM 


31.0 


30.0 


80.0 


24.0 


5.7 


5.1 


3.7 


80186 


8 


Kaypro 1 6 


57.0 


30.0 


184.0 


56.0 


7.3 


8.8 


10.0 


8088 


N/A 


Osborne 3 


59.0 


56.0 


273.0 


83.0 


15.0 


11.0 


23.0 


80C86 


3.5 


Tandy 1 000 


56.0 


55.0 


226.0 


68.0 


9.9 


9.0 


11.0 


8088 


4.77 


Tl Pro-Lite 


34.0 


33.0 


155.0 


51.0 


11.0 


7.2 


9.1 


80C88 


5 


Mindset 


58.0 


55.0 


301.0 


54.0 


12.0 


8.4 


9.9 


80186 


6 


Compaq Deskpro 


30.0 


29.0 


93.0 


29.0 


7.4 


6.1 


5.1 


8086 


7.14 


IBM PC AT 


26.0 


24.0 


80.0 


27.0 


3.9 


5.5 


4.1 


80286 


6 


ITTXTRA 


33.0 


32.0 


185.0 


56.0 


8.8 


10.0 


10.0 


8088 


5 


NECAPCIII 
Mean 


30.3 


29.4 


86.0 


28.9 


6.5 


8.4 


6.7 


8086-Z 


8 


36.5 


31.2 


130.6 


39.0 


7.8 


7.9 


7.2 


Standard 




















Deviation 


14.8 


11.8 


75.6 


21.8 


3.0 


3.8 


4.6 








Photo of VO-CGA 

genlocking to camera 

and inserting into 

camera signal. 



DOUBLE FEATURE! 



:ovi 



til 



* Inserts on-board CGA output into RSI 70/NTSC vii 

* Works with unmodified CGA softwan 
'* Output to monitor or VCR 

* XT and AT compatible ^^ sj s 

* Switchableigehlock/normal CGA / t ~„ ^ | 

ONLY $600 — AVAILABLE NOW! 



Printer/RGB 

Genlock switch 
Video in 
Video out 



Contact: (505) 526-3209 

Telex: (WUI) 650276972/Ansbk.: MCI 

MC/VISA 



K-sysTcms.inc. 

3902 Lilac, Las Cruces, NM 88005 



KSI 



194 Inside the IBM PCs • BYTE 1987 Extra Edition 



Circle 117 on Reader Service Card 



Circle 16 on Reader Service Card 



RATING THE IBM COMPATIBLES 



Table 2: Multidimensional scaling 


results for 35 personal computers. 


Computer 


Rank 


Coordinate 


Sperry PC/IT 


1 


1.8452 


ITT XTRA XP 


2 


1.4024 


Tele-286 


3 


1.0418 


Western AT 


4 


1.0104 


Zenith Z-248 


5 


.9886 


Epson Equity II! 


6 


.9317 


IBMPCAT 


7 


.7919 


Zenith Z-241 


8 


.7868 


Xerox 6060 


9 


.7659 


Compaq Portable II 


10 


.7341 


Compaq Deskpro 286 


11 


.6769 


Kaypro 286i 


12 


.6245 


Portable STM 


13 


.6085 


Compaq Deskpro 


14 


.4188 


Panasonic Executive Partner 


15 


.3473 


NECAPCIII 


16 


.3368 


AT&T PC 6300 


17 


.2956 


NCR PC6 


18 


.2876 


Multitech MPF-PC/700 D1 


19 


.2333 


Sanyo MBC-775 


20 


.1258 


Conquest Turbo PC 


21 


- .0368 


Tl Pro-Lite 


22 


-.2730 


ITT XTRA 


23 


-.3715 


Canon A-200 


24 


-.4747 


Kaypro 1 6 


25 


-.5154 


Kaypro PC 


26 


- .5270 


Leading Edge Model D 


27 


-.5312 


Ericsson 


28 


- .6030 


IBM PC 


29 


-.8110 


Epson Equity I 


30 


-.9019 


Tandy 1000 


31 


-1.2126 


Mindset 


32 


-1.4164 


Color Fox 


33 


-1.6591 


Osborne 3 


34 


-2.4205 


Data General/One 


35 


-2.4999 


Young's S-Stress formula: 1: 0.086 






Kruskal's Stress formula: 1 : 0.1 12 






R squared: 0.967 







dimensional scaling program is a mea- 
sure of either similarity or dissimilarity 
between each pair of objects or variables 
that are to be scaled. 

For this analysis, I calculated measures 
of dissimilarity between each pair of per- 
sonal computers. I standardized each of 
the seven performance measures for each 
computer by converting it to a Z score, 
taking the difference between each test 
result and the average of that benchmark 
for all the machines, and dividing by the 
standard deviation. I then calculated a 
Euclidean distance measure for each pair 
of computers by taking the square root of 
the sum of the squared differences be- 
tween the Z scores. Next, I used Krus- 
kal's nonmetric multidimensional scaling 
method (see references 3 and 4) as imple- 
mented in the ALSCAL procedure of the 
SPSS* statistical package to reduce the re- 
sulting matrix of dissimilarities to one 
dimension. 

Table 2 presents the results of the anal- 
ysis. It reports each computer's coordi- 



nate on the dimension derived from the 
multidimensional scaling analysis, as 
well as the rank of the coordinate. The 
values for the measures of stress and R 
squared indicate a good fit of the model to 
the data; not much violence has been 
done to the data by reducing it to one di- 
mension. Sperry 's PC/IT is the best per- 
former, while the Data General/One is 
the slowest overall . 

The Results 

The first dozen computers in table 2, with 
the exception of the Xerox 6060, are 
based on the Intel 80286 CPU. This pro- 
cessor is considerably faster than the Intel 
8088 used in the IBM PC and most of the 
other computers in the analysis, and this 
accounts for the high performance rank- 
ings of these machines. 

Within the 80286 machines, some of 
the factors that explain their relative rank- 
ings are the clock speed at which the CPU 
operates, the use of wait states by the 

continued 




MATHEMATICAL 

AND STATISTICAL 

SYSTEM 

for IBM PC-XT-AT-System/2 

and Compatibles 

written by Lee E. Edlefsen 

and Samuel D. Jones 



Save Thousands Save Days in 

in Mainframe^^^^Programming 
Costs! >- Time! 




Powerful! \^ip^ Extremely 

Fast! 
Easy to Learn and Easy to Use! 

The New Standard for Scientific 
and Statistical Computation 

"J used to use FORTRAN and PASCAL for languages, 
TSP and Minitab for statistics, MATLAB for math, and 
NAG and IMSLfor FORTRAN subroutines. Now I just 
use GAUSS." 

Dr. Choon-Geol Moon 
Rutgers University 

* STATISTICS (means frequencies, crosstabs, 
regression, non-parametrics, general max like- 
lihood, non-linear least squares, simultaneous 
equations, logit, probit loglinear models, & 
more.) 

•GRAPHICS (publication quality 2D & 3D: color, 
hidden line removal, zoom, pan; up to 4096 x 
3120 resolution; produce Tektronix format files; 
output to most screen drivers, plotters, printers) 

•PLUS: 

•DATABASE MANAGEMENT 

•SIMULATION 

•TIME SERIES/SIGNAL PROCESSING 

• LINEAR PROGRAMMING 

•NON-LINEAR OPTIMIZATION 

•NON-LINEAR EQUATION SOLUTION 

•INTERACTIVE MATRIX PROGRAMMING 

•LARGE-SCALE MODULAR PROGRAMMING 

• ADD YOUR OWN COMMANDS 

•LINK FORTRAN, C, ASSEMBLER SUBROUTINES 



Buy the GAUSS Programming Language by Itseff oras part 
of the GAUSS Mathematical and Statistical System, which 
Includes 2D & 3D graphics plus over 200 applications 
programs written In the GAUSS Programming Language 
for doing a variety of mathematical statistical and scientific 
tasks Full source code is provided with these programs. 



Call or Write: 

APTECH 

SYSTEMS, INC. 



P.O. Box 6487 

Kent. WA 98064 

(206) 631-6679 



30-DAY MONEY BACK GUARANTEE 

The GAUSS Mathematical 

and Statistical System $350 

The GAUSS Programming 

Language (alone) $200 

Shipping/handling $5.00 

GAUSS requires 320K (51 2 K required tor high resolution 
graphics), DOS 2.1 0+, and a math coprocessor. (Hard disk 
recommended). 

NOT COPY PROTECTED 



BYTE 1987 Extra Edition • Inside the IBM PCs 195 



RATING THE IBM COMPATIBLES 



CPU to synchronize timing with the 
memory chips or other devices, and the 
speed of the disk drives, all of which will 
affect the performance benchmarks. The 
Sperry PC/IT, for example, runs at a 
clock speed of 7.16 megahertz with no 
wait states and has a disk drive with a 30- 
millisecond average seek time. The IBM 
PC AT, in contrast, was benchmarked 
running at a 6-MHz clock speed with one 
wait state and using a hard disk drive with 
a 40-ms average access time, while the 
Zenith Z-248 used an 8-MHz clock with 
no wait states and a hard disk drive slight- 



ly faster than that of the PC AT. These 
factors, and probably others, have con- 
tributed to the large variation in the per- 
formance of the 1 1 IBM PC AT-compati- 
ble machines analyzed here. 

Of the next five ranking computers, 
four use variants of Intel's 8086 CPU, 
while the Portable STM uses the 80186. 
Since the 80186 can be considered an in- 
termediate chip between the 8086 and the 
80286, the placement of the STM in the 
ranking is not surprising. It appears, 
based on its coordinate, to be more simi- 
lar in performance to the 80286 machines 



• Programmers Compiling in 



BASIC • C • COBOL • FORTRAN • PASCAL • dBASE TN 



GLENCO ENGINEERING is committed to providing professional programming 
tools. These sub-routines are completely debugged, and fully documented. 
Hand crafted in ASM, you are assured minimum size and maximum speed. 
You will literally save hundreds of man-hours in design, program and debug 
time. All are CALLABLE routines in .OBJ or .COM format. Please specify 
language and compiler. NOT COPY PROTECTED. NO ROYALTIES. 



Create callable pop-up windows, vertical 
menus, and help screens. Set all borders, 
colors, size, position. Window editor 
included. Over 25 commands added $QQ 
to your compiler. Z/Z/ 



Option for above. Adds 30 more menu and 
keyboard enhancement commands. Menu 
items return integer and text allowing 
context sensitive help. 



$ 99 



UOS.LIB* 



Several low level ROM BIOS routines. Cate- 
gories: KEYBOARD, PRINTER, COMMUNI- 
CATIONS, VIDEO and MISC. 



*99 



Execute another program or alter DOS inter- 
nal switches from inside yourprogram. Read 
or set DTA, Interrupt Addrs., PSP. 
Verify, MEM, default drive, I/O $QQ 
and more . . . ZrZF 



Allows virtually any DOS file operation from 
inside your program. Read or set a files' At- 
tribute, Mode, Data, Time. Check 
Write protect tab. free space, dir. $QQ 



NETWORK TOOLS 



Over 80 subroutines to interface to N ETBIOS. 
Transaction process, multitasking, commun- 
ications, and more . . . Works with 
any system supporting NETBIOS, 
or eqvt. 



$ 99 



*Buy 4 get 5 or Library 6 Pack - $450 
Multiple purchases discount and site licensing. 



• IBM™ 

• Summit Software™ 

• Computer Innovations 

• Microsoft™ 

• Lattice™ 

• Ryan McFarland 1 

• Realia™ 

• Nantucket™ 



NO ROYALTIES 



Call or Write: 

GLENCO 




• Borland™ 

• Aztec 

• Wordtech™ 

• and More 



ENGINEERING INC. 

SERVING THE SOFTWARE INDUSTRY SINCE 1979 

3920 Ridge, Arlington Hts., IL 60004 (31 2) 392-2492 Telex 493-71 09 



VISA 






I- 


asterCard 



than the 8086-based computers. 

The Xerox 6060, which uses the 8086, 
outperforms all the other 8086 computers, 
as well as several of the 80286-based sys- 
tems. This is due to the machine's rapid 
execution of the disk-performance bench- 
marks. Among the other 8086 machines, 
it is interesting that the AT&T and NEC 
computers, although operating at a clock 
speed of 8 MHz, are slower in overall 
performance than the Compaq Deskpro 
and Panasonic systems, which run at 
slower clock speeds. The machines with 
faster clock speeds did execute some 
benchmark tests more rapidly than the 
Compaq and Panasonic systems but were 
slower on other measures. This illustrates 
the usefulness of a multivariate analysis, 
which can summarize all seven perfor- 
mance measures simultaneously. 

On the other hand, the coordinates on 
the derived dimension indicate no tre- 
mendous difference in the performance 
of these four 8086 machines (AT&T, 
NEC, Compaq Deskpro, and Panasonic). 
The computers ranking from 1 8 to 21 use 
Intel's 8088-2 processor, which can be 
set at either a 4.77- or 8-MHz clock 
speed. All benchmark results used in this 
analysis were those for the faster clock 
speed. Since these four machines use the 
same processor and clock speed, one 
might expect to find similar coordinates 
on the derived dimension due to similar 
results on the benchmark tests. 

This is not the case. Considerable vari- 
ation in the coordinates reflects variation 
on the underlying measures. As table 1 
shows, these machines differ most on the 
Sieve benchmark, which measures pro- 
cessor speed. Even for computers with 
the same processor and clock speed, per- 
formance can differ significantly. 

Nine of the remaining 14 computers 
use Intel's 8088 processor, including the 
IBM PC. As table 2 indicates, the IBM 
PC has relatively poor performance when 
compared with the other machines in this 
analysis. Even among the nine machines 
using the 8088, the IBM ranks sixth in 
speed. On the other hand, the IBM PC is 
the oldest machine on the list, and there 
are few dramatic differences between it 
and the other machines of its type. 

The two lowest-ranking machines, the 
Data General/One and the Osborne 3, 
and the higher-ranking TI Pro-Lite, are 
"laptops," small and light enough to be 
held in your lap. Most laptop computers 
use variants of the Intel 80C88 processor, 
a CMOS version of the 8088 that uses sig- 
nificantly less electrical power than stan- 
dard microprocessors, making it more 
suitable for battery-powered computers. 

What you give up in exchange for por- 
tability can be performance. The TI Pro- 

continued 

«— Circle 89 on Reader Service Card 




driven by the powerful 
Rascol® II rasterizer (included). 
Even scanned images in TARGA® 
format can be incorporated, to put a 
whole new presentation tool in your hands. 
Only from Lasergraphics — the innovator 
in raster processors and film recorders. 



Boardroom 
Quality Slides at Your ^ 
Fingertips — Introducing 
the PFR Personal Film 
Recorder™ from Lasergraphics. Its 
4000-line resolution and 30-slide per 
hour output make your PC a unique graphics 
presentation center that combines speed and 
convenience with complete confidentiality. 
And at only $4995, PFR can pay for itself in 
less than a year even if you make as few as 10 sample slide. 
high quality slides a week. 

Virtually all popular CADD or ,|A5PPEBAPMIC5 " 
business graphics PC packages | | » l iAacKlaKAr " ILa 
are compatible with PFR, 1' 

Turn your PC into a high-resolution graphics workstation for under $5000. 



Call 714-660-9497 
for a free 




*TARGA is a registered trademark of AT&T. 



Circle 119 on Reader Service Card (Dealers: 120) 









RATING THE IBM COMPATIBLES 



Lite performs slightly better than its 
8088-based cousins, but the Data Gener- 
al and Osborne computers are extraordi- 
narily slow. The other two slow systems, 
the Color Fox and the Mindset, have en- 
hancements for graphics applications that 
apparently degrade performance. 

Other Considerations 

You should take many factors into consid- 
eration when purchasing a personal com- 
puter, including price, warranty terms, 
and availability of repair service. Also, 
you must consider software compatibil- 
ity, accessibility of training and consulta- 
tion, and performance. 

The performance dimension has sever- 
al sources of variation, however. These 
include the type of CPU used in the com- 
puter, the CPU's clock speed, the use of 
wait states, and the speed of the disk 
drives. All these sources of variation in- 
teract to affect performance in ways diffi- 
cult to evaluate. 

Using standard benchmarking pro- 
grams is one approach to comparing the 
performance of computers. However, 
when you use several benchmarks, the ef- 
fect can be to provide additional sources 
of variability at a higher level of abstrac- 
tion. I've used multidimensional scaling 



to summarize seven benchmark tests and 
yield a rank order of 35 personal com- 
puters based on performance. 

The ranking shows that, in general, 
computers using the Intel 80286 proces- 
sor are the fastest, followed by those 
using the 8086, the 8088-2, and the 8088, 
with laptop computers using the 80C88 
processor and its variants generally the 
slowest. Within each of these broad cate- 
gories is considerable diversity. Some of 
it can be accounted for by CPU clock 
speed, wait states, or disk drive speed, 
but some differences in performance re- 
main even among machines with, almost 
identical designs. 

The lesson to be learned from this 
analysis is that, in microcomputer perfor- 
mance, the proof is in the using. Those 
who are concerned about performance 
should measure the speed of the com- 
puters in performing tasks for which they 
are likely to use the machines. These per- 
formance tests are critical even for ma- 
chines with supposedly equivalent archi- 
tectures and components. A series of 
benchmarking programs can capture im- 
portant differences in performance that 
design specifications do not reveal. 

Finally, a few words of caution about 
interpreting this performance ranking. 



Although the multidimensional-scaling- 
analysis results in this article are valid for 
the machines analyzed, they could vary 
significantly if other computers, particu- 
larly computers differing substantially in 
performance from those examined here, 
were introduced into the analysis. Adding 
a new machine to the ranking would re- 
quire the calculation of new dissimilar- 
ities and a new analysis of the entire set of 
data. It is not possible to infer from this 
particular ranking where a machine not 
included in this analysis would fall. ■ 

REFERENCES 

1. Kruskal, Joseph B., and Myron Wish. 
Multidimensional Scaling. Sage University 
Paper Series on Quantitative Applications 
in the Social Sciences, no. 07-011. Beverly 
Hills, CA: Sage Publications, 1978. 

2. Schiffman, Susan S., M. Lance Reyn- 
olds, and Forrest W. Young. Introduction 
to Multidimensional Scaling. New York: 
Academic Press, 1981. 

3. Kruskal, Joseph B. "Multidimensional 
Scaling by Optimizing Goodness of Fit to a 
Nonmetric Hypothesis. " Psychometrika, 
March 1964, pages 1-27. 

4. Kruskal, Joseph B. "Nonmetric Multidi- 
mensional Scaling: A Numerical Method." 
Psychometrika, June 1964, pages 1 15-129. 








.> ^ 



Polaris Zoo Keeper 

Civilizes the 
Information Jungle 

Tameyourharddiskdirectories, retrieve files in seconds. 

Polaris Zoo Keeper is a powerful ram-resident program that helps 
you locate and load files instantly on any drive, in any directory. 

Not a DOS Shell. Not a Directory Sorter. Zoo Keeper automati- 
cally pops up and asks you to tag each new file with up to three key 
words and a 40 character description. Later, to locate a file, 
enter one of the key words and the name and description of every 
related file in every directory will be listed. Next, place the cursor 
on the file you seek to load, touch the 'enter' key and you're in busi- 
ness. Zoo Keeper civilizes the information jungle. 

Order direct today. Call: 800-338-5943 

$75 with a 30-day money-back guarantee. 

Add $6 shipping and handling. 6% sales tax in CAonly. 

System Requirements: IBM PC, XT, AT, PS/2 and 100% compatibles; 35K RAM 



POLARIS 

SOFTWARE 

613 West Valley Parkway, Suite 323 • Escondido, CA 92025 



< See us at COMDEX H.P. Booth 1746 



198 Inside the IBM PCs 



BYTE 1987 Extra Edition 



Circle 1 79 on Reader Service Card (Dealers: 180) 



orit waste your LaserJet 
investment 



You're not getting full benefit from your 
LaserJet or Series II investment. Because 
your wordprocessing, spreadsheet and 
database software only tap a fraction of its 
full potential. But POLARIS programs 
provide the enhancements you need to 
create documents that look as professional 
as their contents. Here's how. 

Polaris PrintMerge... 

i s the general purpose program for memos 
and letters, reports and documents. Do 
true proportional spacing and alignment 
of text, tables, columns with crnycom- 
bination of old/new soft and cartridge 
fonts. Merge text with screen or output 
graphics iromari)> program — draw lines, 
boxes, patterns— anywhere. It's the 
quick easy way to make documents look 
as professional as 
their contents. To 
bring your 
LaserJet— and 
your investment 
- to life. 




Polaris Forms... 

is a special program for quickly, easily 
creating professional-quality forms. Mix 
and position any combination of old/new 
cartridge and soft fonts anywhere. Justify 
copy, or set flush left, right, or centered in 
any width. Draw lines, boxes, patterns. 
Automatically repeat text, lines, graphics. 
Merge graphics and text from other pro- 
grams. Make blank or completed, single or 
multiple page forms. Even have automatic 
serialization, date or time. Unique capa- 
bilities handle current and future needs 
without the time and expense of type- 
setters, graphic designers. 



Draw lines, - 
boxes & patterns 



Align tables - 
& columns 



Merge graphics - 



Pictures - 



Logos ' 
Mix fonts - 



po 1 

V 9ft6 S»* - " vetce 1 










4etW 




\0 







iM 










e«cc- 







^^f 



$s$& 



^\A> 



.Vsisss- 



^^Ss- 






uieivw- 



M icrosojty° 









Cba"f 



para 



Polaris LabelMaker... 

makes your customer's^/ impression of 
package and envelope labels a great 
impression. Quickly, easily create any style 
or size label printable by a LaserJet. Merge 
and format proportionally spaced words, 
graphics, lines, 
boxes, bar 
codes for the 
master. 



j fll ,elin 
Lotus 







LabelMaker automatically posi- 
tions and prints multiple copies. Even 
include serial numbering. Everything you 
need — without the aggravation. 



Circle 181 on Reader Service Card 
(Dealers: 182) 



Order Direct Today... 

to make sure you are getting the full benefit 
from your LaserJet or Series II investment. 

800/338-5943 

(In CA 800/231-353D 

for IBM PC, XT, AT & 100% compatibles. 
*Add $6 shipping & handling. 30-day 
money back guarantee. 

Polaris Ram-resident PrintMerge $149* 
Polaris PrintMerge for WordStar 3.3 & 4.0 $124* 
Polaris Forms $149* 
Polaris LabelMaker $124* 
Polaris Lines • Graphs • Symbols $75* 
Polaris Font Control for Word & WordStar 2000 
(automatic PRD & PDFtable generation) $99* 
Polaris ScanControl $99* 

POLARIS 

SOFTWARE 

613 West Valley Parkway, Suite #323 
Escondido, California 92025 
619/743-7800 



Run PC 
Software 
on the 

















CMS Transporter ™ 

5 Vk" Floppy Disk 
Subsystem 



... i .i.i.i in ■ ... — i ■ i i ii j i I H 




Call today for the name and number 
of your nearest CMS dealer. 



CMS Enhancements, Inc. 

1372 Valencia Avenue, Tustin, CA 92680 (714) 259-9555 
Telex (023) 371-8711 FAX (714) 549-4004 



©CMS is a registered trademark of CMS Enhancements, Inc. 

IBM is a registered trademark of International Business Machine Corporation 

Transporter is a trademark of CMS Enhancements, Inc. 



Circle 1 73 on Reader Service Card (Dealers: 1 74) 



INSIDE THE IBM PCs 



Add windowing to your BASICA programs using 
this assembly language subroutine 



Windows for BASIC 



John W. Ross 



Most commercial programs 
that do any sort of on-screen 
interaction with the user have 
ads boasting that they "do 
windows." These applications 
programs are usually written 
in C or some other compiled 
language. In this article, I will 
show how you can add a win- 
dowing subroutine to pro- 
grams written for the IBM 
PC's Microsoft BASICA in- 
terpreter and other fully com- 
patible Microsoft BASICs. 

The windowing must be 
done in assembly language to 
get the required speed from 
the interpreter. Depending on 
your viewpoint, this can be an 
advantage or a disadvantage. 
As a bonus, careful study of 
the listings will reveal some 
techniques that you can apply 
to other interpreter/assembler 
interfaces. 

Video Basics 

To implement this project, I 
will work directly with the 
PC's screen memory. In any 
project of this sort, you need a 
good understanding of the un- 
derlying hardware principles, 
so I will first present some 
background on the PC's video 
display system. 

The IBM PC uses memory- 
mapped video; this means that character 
positions on the screen correspond to lo- 
cations in the PC's memory. Memory lo- 
cations A0000 to BFFFF (hexadecimal) 
are set aside for video display use. The 
exact correspondence depends on the 
type of graphics card or video adapter 
you use. The original IBM cards are the 
Monochrome Adapter (MA) and the 
CGA. Since these two cards are the most 
common, I will deal with them in this 
article. 

Illustration: Steve Dininno © 1987 




The MA occupies 4K bytes of display 
memory starting at address B0000, while 
the CGA occupies 16K bytes from ad- 
dress B8000. While the MA can display 
only text and predefined graphics charac- 
ters, the CGA, with its greater comple- 
ment of memory, can operate in three 
graphics modes, two 40-column text 
modes, and two 80-column text modes. 

I designed the windowing subroutine 
for the 80-column text mode, so it is com- 
patible with both the MA and the CGA. 



DOS identifies the appro- 
priate video modes as modes 2 
(CGA gray), 3 (CGA color), 
and 7 (MA). 

In 80-column text mode, the 
CGA has four times the MA's 
memory. This memory is di- 
vided into four "pages," num- 
bered to 3, only one of which 
appears on the video screen at 
one time. Usually, you work 
only with page 0, but you can 
make any of the four pages ac- 
tive, and both DOS and BASIC 
provide facilities for switching 
video pages. The windowing 
subroutine will detect which 
page is currently active and 
place its windows on the cor- 
rect page. 

Each character position on 
the screen occupies 2 bytes in 
video memory. The even- 
numbered bytes contain the 
code of the character dis- 
played on the screen, while 
the following odd-numbered 
bytes contain the character's 
attributes. The 8 bits of the at- 
tribute byte have the meanings 
shown in table 1 . 

You can obtain the 256 pos- 
sible combinations of these at- 
tributes by adding the values 
of the desired characteristics. 
For instance, an attribute 
value of 4 corresponds to red 
characters on a black background; adding 
8, for an attribute value of 12, gives 
bright-red characters on a black back- 

continued 

John W. Ross is a senior scientific com- 
puting consultant at the University of 
Toronto and president of Jayar Systems, 
maker of a graphics package for the IBM 
PC. He can be contacted at Jayar Sys- 
tems, 253 College St., Suite 263, To- 
ronto, Ontario, Canada M5T1R5. 



BYTE 1987 Extra Edition • Inside the IBM PCs 201 



WINDOWS FOR BASIC 



ground, while a value of 140 (i.e., plus 
128) gives you blinking, bright-red char- 
acters on a black background. 

In monochrome mode, the attribute byte 
has a more limited interpretation, although 
it uses the same general coding scheme. 
The blinking and intensity bits still have the 
same meaning, but only four color combi- 
nations are valid: an attribute value of 7 
produces normal white on black, a value of 
1 produces underlined white characters on 
black, a value of 112 produces reversed 
(black-on-white) characters, and an attri- 
bute value of yields invisible characters. 



All other attribute values show the same as 
7— normal white on black. 

Implementing Windows 

I will start with a definition or description 
of a window from the user's point of 
view. Windows are rectangular regions 
that appear almost instantly on the screen 
to display information or allow interac- 
tion with the user. Crucial to their utility 
is the fact that, when the window disap- 
pears, the previous contents of that screen 
area are restored. 

Given the memory-mapped nature of 



SAVE TIME and ADD PRODUCTIVITY 

with 



NE-SHEU 



begin 

clrscr; 

writeln( 

writeln( 

writeln ( 

writeln( 

writeln( 

writeln( 

writeln( 

writeln( 

writeln( 

writeln( 

writeln( 

writeln( 

writeln( 

writeln( 

writeln( 

writeln( 

writeln( 

writeln( 

writeln( 

writeln( 

writeln ( 

writeln( 

writeln( 

writeln( 

writeln( 

writeln( 

writeln( 

writeln( 

writeln( 

writeln( 

writeln( 

writeln( 

writeln( 

writeln( 

writeln( 

writeln( 

writeln( 

end . 



XO-SHELL 



XO-SHELL is a removable memory resident program which provides the user the 
following capabilities WHILE RUNNING an APPLICATION: 

■ DIRECTLY FROM a SCROLLABLE DIRECTORY DISPLAY, you can view files, copy 
files, erase files, change the default directory, and, when not in an 
application, execute programs. 

■ You can DISPLAY ANY FILE, TRANSFER ANY SECTION of that file for PRINTING, 
or transfer it to the keyboard for INPUTTING INTO YOUR EDITOR. 

■ You can PRINT FILES WITHOUT LEAVING an APPLICATION. You can include a 
header line, containing current date, title, file name, file creation 
date and page number on every page of a list. 

■ You can SEARCH STRINGS from a file or group of files that you specify; 
you can do the MOST EFFICIENT CROSS-REFERENCING in the middle of 
programming by searching variables from source files. 

■ You can CREATE or EDIT FILES. 

■ You can control and use your printer as a typewriter. 

■ You can INPUT ANY IBM-PC CHARACTER as easily as you input regular ASCII 
characters. You can easily draw vertical or horizontal lines in your 
source code by choosing graphics characters from a pop-up window. 

■ You can OBTAIN the KEY CODE of any key combination without looking up a 
reference or going through a difficult interpretation. 

■ You can COLLECT the APPLICATION'S SCREEN displays in a file and later 
edit or review them. 

■ A DOS COMMAND EDITOR allows you to retrieve, edit and reexecute previous 
DOS commands. It also PREVENTS an ACCIDENTAL HARD DISK FORMATTING. 



XO-SHELL works with most editors (such as Turbo PASCAL, Turbo C, Turbo BASIC, and 
Quick BASIC editors) and application software such as LOTUS 1-2-3. It runs on IBM-PC's, XT's, 
AT's, PersonalSyston/2's and true compatibles, and requires PC/MS-DOS 2.0 or higher. 

To order, send $69 plus $5 shipping and handling, or call 



1-800-635-5011 (outside ma) 



UJ-JTE 



WYTE CORPORATION 

701 Concord Avenue 

Cambridge, MA 02138 

Tel. (617) 868-7704 



>/2, PC-DOS 



the IBM PC's screen, it's easy to see how 
a program could place a window on the 
screen. The program simply places blank 
bytes in the memory locations corre- 
sponding to the window's desired loca- 
tion on the screen and sets the attribute 
bytes to the desired color. To spiff things 
up a bit, the program could place box- 
drawing characters in the perimeter-win- 
dow bytes to help delineate the window 
from the surrounding text. 

This still leaves the problem of restor- 
ing the previous screen contents. To solve 
this problem, the program must supply a 
buffer into which it can copy the bytes 
from the screen where the window will be 
opened, before opening the window (re- 
member that the buffer will have to pro- 
vide storage for 2 bytes for each screen 
location). Then, when the window is 
closed, the original screen bytes are cop- 
ied back onto the screen, leaving it just as 
it was before the window appeared. 

If the buffer is big enough, you can 
have multiple windows open at once, and 
these windows can overlap one another to 
any degree. (In the case of overlapping 
windows, it is necessary to close them in 
the reverse order from which they were 
opened.) 

Windows in BASIC 

Since BASIC supplies PEEK and POKE 
commands that let you access any mem- 
ory location, including screen memory, 
you might wonder why you couldn't im- 
plement windows in BASIC. In fact, you 
could do it with quite a compact bit of 
code. Unfortunately, when you open a 
window this way, it is excruciatingly 
slow. The window doesn't "pop," 
"flash," or "open" as windows are sup- 
posed to— it is painted on the screen byte 
by byte. This slowness is especially no- 
ticeable for big windows. Windows im- 
plemented in BASIC lose all their impact; 
if you try it, you will be unimpressed. 

Even that old cure-all for BASIC'S slug- 
gishness, resorting to the compiler, 
doesn't help much. It's faster, but you can 
still see the windows being painted on the 
screen rather than just popping up— again, 
the effect is worse for large windows. Even 
if this were the answer to the speed prob- 
lem, it wouldn't be an ideal solution. Not 
everyone has access to the Microsoft com- 
piler, and resorting to the compiler means 
that you lose the advantages of using an in- 
terpreter in the first place. 

This dilemma has only one solution— 
you have to resort to assembly language 
to implement the speed-critical subrou- 
tine. Although interfacing assembly lan- 
guage routines to interpreted BASIC pro- 
grams can drive you to the brink of 
madness (if not clear over), if it works, 
the results are dramatic. In this case, the 



202 Inside the IBM PCs ■ BYTE 1987 Extra Edition 



Circle 246 on Reader Service Card 



WINDOWS FOR BASIC 



windows appear and disappear instantly, 
with no painting effect. 

Assembly Language Windows 

I've provided two ways for you to access 
the assembly language subroutine from 
your own programs. If you have the 
Microsoft Macro Assembler, type in the 
program in listing 1, WINDOW. ASM, 
which you can then assemble and link to 
produce WINDOW.EXE. This is the 
route to go if you want to experiment a 
bit. Alternatively, I've provided a gener- 
ator program, WINDOW. BAS; this 
BASIC program generates the file 
WINDOW.EXE. [Editor's note: WIN- 
DOW. BAS is available on BIX, on disk, 
and in print. See the insert card following 
page 208 for details. Listings are also 
available on BYTEnet. Seepage 4.] 

When you call the windowing subrou- 
tine from BASIC (I will discuss the format 
later), you supply the following arguments: 
a parameter that indicates to the subroutine 
whether you want to open or close a win- 
dow, a starting row and column number for 
the window, its size in rows and columns, 
an attribute byte for the window, and the 
location of a buffer array that the subrou- 
tine can use to store the portion of the 
screen that the window will overlay. (You 
supply the buffer in BASIC to minimize the 
subroutine size and devote no more mem- 
ory than necessary to the buffer.) The sub- 
routine then places a window on the 
screen, outlinedby a double line, in the po- 
sition requested. 

I will describe the subroutine's opera- 
tion in more detail, but first I have to dis- 
cuss a problem that anyone developing 
assembly language applications for 
BASIC has to overcome— where to put 
the assembly language subroutine. It has 
to be someplace where BASIC can find it 
so control can be transferred when neces- 
sary, but the location has to be secure 
enough so that the subroutine won't be 
damaged by BASIC, DOS, or any other 
gremlins that might be wandering around 
your computer's memory. 

The neatest solution is to make the sub- 
routine a resident program, which effec- 
tively makes it an extension of DOS. The 
subroutine is snug and safe there; you can 
forget about it and let DOS look after it. 
Once you install it, it will remain in place 
until you reset the system. The other ad- 
vantage of having the subroutine perma- 
nently installed in DOS is that you don't 
have to explicitly include it in your 
BASIC programs. 

When you call the window subroutine 
from BASIC, control is transferred to the 
section of code labeled start in listing 1 . 
The program first saves BASIC'S regis- 
ters, then extracts the argument addresses 
passed by BASIC. The program next 



checks the current video mode. If it is not 
80-column text mode, the program re- 
turns to BASIC without doing anything. 
Assuming the mode is acceptable, the 
program uses the input window location 
to compute the offset of the window from 
the start of display memory. 

Depending on the function code passed 
to the routine, it either stores the contents 
of the screen area that will be covered by 
the window in the buffer supplied by 
BASIC, or it reverses the procedure and re- 
stores the screen contents from the buffer. 
If the program is closing a window (i.e., 



restoring the screen contents), it returns to 
BASIC at this point; otherwise, it places a 
window on the screen at the specified loca- 
tion. The internal subroutine put_line 
does this; it places one line of the window 
at a time on the screen. 

The section of the program starting at 
loader executes when you install the 
program. It loads the subroutine in mem- 
ory, then sets a pair of pointers to the sub- 
routine in the interapplication communi- 
cations area (ICA). This 16-byte area in 
DOS at location 0000:04F0h is reserved 

continued 



"Watson keeps our top clients 
happy and brought us 16 
new accounts the first month." 



Hank Gillespie, Manager 
Robert Thomas Securities 
Ingleside, Texas 



At Robert Thomas Securities, Watson lets 
clients place orders and get personalized 
market information around the clock from any 
pushbutton phone. The service is so popular it 
brought the firm 16 new referral clients the 
first month! And at a very reasonable cost: 
Watson, a multi-purpose voice processing 
option for IBM PC, XT, AT, and compatibles, 
has a base price of only $498. 

For an ear-opening demo on how Watson 
can help you manage business communica- 
tions better, call 1-800-6-WATSON. In Mass., 
(617) 651-2186. 




Natural Microsystems Corporation 

Walton is a trademark of Natural MicroSystems Corp. IBM PC, XT and AT are trademarks of International Business Machines Corp. 



Circle 148 on Reader Service Card 



BYTE 1987 Extra Edition • Inside the IBM PCs 203 



NOW YOU 

CAN BE POSITIVE 

YOUR SPREADSHEETS 



WINDOWS FOR BASIC 



THE UNIQUE SPREADSHEET AUDITING UTILITY THAT LETS YOU 

IDENTIFY, LOCATE AND CORRECT ERRORS WITHOUT EVER 

LEAVING YOUR SPREADSHEET. 



TRACER 



THE SPREADSHEET DETECTIVE 

What Errors? Tracer will search for the following: 

□ Circular chains 

□ References to blank cells 

□ References to cells outside the spreadsheet 

□ References to cells that contain labels 

□ References to ranges that are reversed 

D Ranges that have a value along their perimeter 

□ Cells that have a value of error or N/A 

□ Unreferenced constants 

How Does It Do That? 

□ The Map will show the value type of each cell and show 
cells that are empty or part of a circular reference. 

□ Circular Reference lets you see cells that refer to 
themselves and shows cells that form a circular chain. 

□ Used by lets you display the list of cells that use a selected cell. 

□ Probe lets you search cell by cell to find out what went wrong. 

□ Strange lets you look at unusual cells and unusual 
references to cells. 

D The Editor lets you make corrections. 

□ Select/Delete displays a requested directory and lets you 
select, load/delete files. 

□ Tracer constructs a Symbolic Name for a cell from the 
section heading, column and row titles that displays 
throughout the operation for quick reference. 

□ Tracer resides in only 75 K of RAM. 



What Spreadsheets? 

□ Lotus 1-2-3 □ SuperCalc □ Symphony 

□ The Twin □ VP Planner 

How Much Does It Cost? Only $89-95 

Plus $5.00 shipping and handling. Calif, residents add 
6% sales tax. Use check, money order, Visa or MasterCard. 

Still Not Convinced? 

Maybe you don't think you have spreadsheet errors. 

Send for a free spreadsheet Diagnostic Diskette. We'll show 

you the errors you didn't 

know you had. ^ m 

See us at Comdex 

Booth R8204 

TheMtWhitneyGroup 

Natural Software ' 

Call 800/521-6320 

11612 Knott Ave. Building G-19, Garden Grove, CA 92641 

Lotus and 1-2-3 arc registered trademarks of Lotus Development Corp. SuperCalc is a registered trademark of 

Computer Associates, Inc. Symphony is a registered trademark of Lotus Development Corp. The Twin is a 

registered trademark of Mosaic Software. VP Planner is a registered trademark of Paperback Software. 




204 Inside the IBM PCs 



Circle 142 on Reader Service Card 
(Dealers: 143) 



Listing ] 


: The assembly language code that, when 


compiled and linked, produces 


the file WINDOW.EXE. 


When you run WINDOW.EXE, 


it installs the windowing 


subroutine in DOS 






; Windows for interpreted 


Copyright (C) JohnW. 


BASIC; 






Ross 1986; 


Calling format: 






; CALL WINDOW ( BUFR# ( I ) , IFN& 


R0W1£, C0L1#, NR0W£, 


NCOL£, ATTR#) 






i 


BUFR# 




buffer array supplied 
by BASIC to hold 
screen contents 


') 


IFN£ 


function to 


1 - place window on 


> 




perform: 


screen 
2 - restore screen 
contents 


* 


R0W1# 




row number of upper 
left corner of window 
(0-24) 


t 


C0L1# 




column number of upper 
left corner of window 
(0-79) 


t 


NR0W# 




height of window in 
rows 


t 


NCCM 




width of window in 
columns 


• 


ATTR# 




screen attribute of 
window area 


zseg 


segment 


atO 






org 


04f0h 




comm_of st dw 


7 


; vectors to routine in 


comm_seg 


dw 


7 


; inter-apps comm area 


zseg 
• 


ends 






grp 


group 


deseg, zloader ;an artifice to force 








code 


deseg 


segment 


'code' 


; to load first 


deseg 


ends 






code 


segment 


para public 
'code' 


; define code seg 


windo 


proc 


far 


; this is the windows 
subroutine 




assume 


cs:code,ds: 


code,ss:st-seg 


;save BASIC ' s registers 




start: 


push 


bp 






mov 


bp,sp 






push 


ds 






push 


es 






push 


ss 






jmp begin 


; stash our data in here 


cpyrt 


db 


'Copyright (C) JohnW. Ross 1986' 
; brought to you by . . . 


coll 


dw 


7 


; upper left column 


rowl 


dw 


? 


; upper left row 


col_cnt 


dw 


7 


; width in columns 


row_cnt 


dw 


7 


; height in rows 


dsp_mod 


dw 


7 


; current CRT display 
mode 


page_no 


dw 


7 


;current display page 


attr 


db 


7 


; window display 
attribute 


ifn 


dw 


7 


; function: 1 - open 
window 
; 2 - close it 








continued 



Buy a modem from 
us and well throw in 





new business offices 
worldwide. 










■ •-■:: 



When you leave your office, you shouldn't lose your 
data communications ability. Now, you can transmit 
and receive data from virtually anywhere in the 
world. Our WorldPort Series of modems allows 
you to connect in millions more locations than con- 
ventional modems. This means your modem can 
work where you do — hotel rooms, phone booths, 
internationally, even with digital PBXs. 

The WorldPort 2400™ and the WorldPort 1200™ 
modems represent the cutting edge of modem tech- 
nology. Their features go far beyond internal units, 
giving you both Bell and CCITT standards, direct 
connect and acoustic interface (300 and 1200 bps), 
battery power, and shirt pocket size. In fact, World- 
Port may be the ultimate modem for both portable 
and desktop applications. And if you're impressed 
with the size, check our price. 

For even greater versatility and value, the WorldPort 
1200 can be easily upgraded to 2400 bps. And the 
WorldPort 2400 comes with Carbon Copy PLUS™ 
communications software, a real "double feature." 
Find out how doing business with Touchbase 
Systems can help you locate a few extra places to 
do business. 

For more information about WorldPort modems and 
the name of your nearest dealer, call us today at 
800-541-0345. In New York call (516) 261-0423. 



Touchbase Systems, Inc. 
160 Laurel Avenue 
Northport, NY 11768 
(516)261-0423 
TELEX: 6502848020 
FAX: (516) 754-3491 



WorldPort 1200 and WorldPort 2400 are trademarks of Touchbase Systems, Inc. 
Carbon Copy PLUS is a trademark of Meridian Technology. Inc. 

Circle 226 on Reader Service Card 




Circle 75 on Reader Service Card 




d? 



$%p 



* 



Runs on IBM PC, XT, AT, PS/2 and Compatibles 

Trademarks: VTI02. VT220 - Di^iml Equipment . IBM PC. XT- IBM Corp. Hmulei - HemOti Computer Tfcbiohjgy, TekiivnLx - Tehnmta hie 




WINDOWS FOR BASIC 




• 286 AT 10/12MHz Portable Systems 

• 8088-1 XT 10MHz Portable Systems 

Please visit us at B139 Bally's Las Vegas Comdex/Fall '87 

^immi£e (213) 868 " 6930 " FAX < 213 > 864-2249 

" ''" 11849 E. Firestone Blvd. • Norwalk, CA 90650 



Songlln Intemallonot Cap 



video dw 


0b800h,0b900h, 
pages 0-3 


ObaOOh, ObbOOh ; CGA 


mono dw 


ObOOOh 


;mono adapter 


begin: 






; get arguments 






mov 


bx, [bp]+6 




mov 


ax, [bx] 




mov 


cs:attr,al 




mov 


bx, [bp]+8 




mov 


ax, [bx] 




mov 


cs:col_cnt,ax 




mov 


bx,[bp]+10 




mov 


ax, [bx] 




mov 


cs:row_cnt,ax 




mov 


bx, [bp]+12 




mov 


ax, [bx] 




mov 


cs: coll, ax 




mov 


bx, [bp]+l4 




mov 


ax, [bx] 




mov 


cs:rowl,ax 




mov 


bx, [bp]+l6 




mov 


ax, [bx] 




mov 


cs: ifn,ax 




; save BASIC'S data 


segment 




push 


ds 




;now set ds register to the code segment 


mov 


ax, code 




mov 


ds, ax; check current video state 


mov 


ah, 15 




int 


lOh 


;use the DOS interrupt 


emp 


al,2 


; black-and-white 80- 
column? 


Je 


crtok 




emp 


al,3 


; color 80-column? 


je 


crtok 




emp 


al,7 


; is it mono? 


je 


crtok 




pop 


ds 


; none of the above 


jmp 


exit 


; - fix stack and bail 
out 


crtok : mov 


ah,0 


;get display mode from 
al 


mov 


dsp_mod,ax 


; into a word 


mov 


bl,bh 


; video page number 


mov 


bh,0 




mov 


page_no,bx 




shl 


bx,l 


; index to video page 


emp 


dsp_mod,7 


; test display mode 
again 


jne 


labl 


; in case it's mono 


mov 


bx,8 


; adjust video page 
number 


labl : mov 


dx,video[bx] 


; upper left of screen 


push 


dx 


; save it for now 


mov 


dh,byte ptr 
rowl 


; define window 


mov 


dl,byte ptr 
coll 




mov 


al,80 


;pntr=80 


mul 


dh 


;pntr=80*rowl 


mov 


dh,0 




add 


ax,dx 


; pntr=80*rowl+coll 


shl 


ax,l 


;pntr=2*(80* 

rowl+coll) 
; point to window 

offset 


mov 


bx,ax 


;now it's in bx 


pop 


es 


; es now points to the 
screen 

continued 



206 Inside the IBM PCs 



Circle 228 on Reader Service Card 






it 



oai °P 



on 




WJSSr^ 



setVes 



m astet 



a. 



on 



aM o1C 



Oi^ll cflrf** 



the 



1 



j&i*^ 



3P 



A cot 



fcVes. 



t-^ef^J 



■'•?•'. 'V ■ SU **" I 



;' REPRINTED FROM 
DEC PROFESSIONAL MAGAZINE, MAY 1987 






(WITH REVEWS LIKE THESE, WHO NEEDS CLEVER HEADLINES?) 



Find out why magazines like DEC Professional 
and PC Week and over 60,000 PC users appreci- 
ate the convenient yet powerful features of 
VTERM/220, VTERM III and VTERM/4010. 
Send in this coupon and see for yourself. 

VTERM/220: Precise VT220, VT100 and 
VT52 emulation with full KERMIT and XMODEM 
file transfer and automatic ref ormating of host 
files for insertion into spreadsheets and data bases. 

VTERM III: VT100 and VT52 emulation with 
many of the convenient features k 
of VTERM/220. 

VTERM/4010: VT100 and 
Tektronix 4010 emulation for 

applications. V I EKlwl 



I would like to find out why magazines like DEC Professional, 
PC Week and others rate VTERM/220 so highly. 

| Please send me the DEC Professional and PC Week reviews. 

□ Please send me information on your free 30-day evaluation 
of VTERM/220, VTERM III and VTERM/4010. 

NAME TITLE 



COMPANY. 
ADDRESS. 
CITY 



. STATE . 



.ZIP. 



PHONE NUMBER . 




Write: Coefficient Systems Corporation 

611 Broadway, New York, N.Y. 10012 

or call (212) 777-6707 ext 411 

FAX: (212) 228-3137 TELEX: 6503156498 

•VTERM refers to VTERM/220. VTERM III and VTERM/4010 from Coefficient Systems Corporation. 



Circle 252 on Reader Service Card 



BYTE 1987 Extra Edition 



Inside the IBM PCs 207 



Circle 33 on Reader Service Card 



Still trying to get 
Engineering [graphs 
kdmBustiBsi 




WINDOWS FOR BASIC 



programs 




software that is 
dat4 corfipatible 
witH Lotus pro- 
grams and most \ " 
data acquisition 
packages. 



• Curve fitting i Smoothing • Log/ Log 

• Labelling • ScateGorrt rot •MuttrpleX-Y Axes 

• Mdny other technical features arid functions 



is (617) 890-1 812 

KS binary engineering 



List. Pries;., 



100 Fifth Ave. 
Waltham,:MA 02154 



TECH*GRAPH*PAD 



ITS 



NEW PRODUCTS FROM 

THE BARCODE PRICE LEADER 

Model Description List Price ITS Price 

ITS 5308 NEW! The ITS WanderWand(tm). a hand- 
held, lightweight portable bar code reader, holds up 
to 48,127 characters of data, automatically discrim- 
inates among label codes, time-stamps labels, 
calculates, & dumps scans through standard serial 
RS232 plug. Wand included. $1195 $695 

ITS 5309 NEW! Serial Scanner, compatible with any 
kind of computer with industrial standard interface 
RS232 or RS422. Reads bar codes of UPC/EAN. 2 
of 5, 3 of 9 and CODABAR. Wand included. 

$529 $319 

ITS 5306 PC-Wand Bar Code Reader emulates the 
keyboard and reads codes UPC. CODABAR, 3 of 9 
and 2 of 5 interleaved on IBM PC/XT, PC/AT and 
clones. Wand included. $495 $295 

ITS 5307 Bar Code Generation Software uses most 
matrix printers to print labels in codes 3 of 9, CODA- 
BAR, 2 of 5, UPC-A and 128. $125 $69 

SCANNERS Choose the scanner to meet your bar 
code needs. All scanners are available to be used 
with each bar code reader. 
BN-10 Non-contact pistol scanner with a reading 
distance of 1.2 • 2.4 inches, for reading curved 
surfaces. 5949 5559 

BA-10 Raygun Automatic Scanner, pistol beam 
scans across bar code, just point and shool. Max- 
imum reading width of 2.5 inches $-|299 $799 



1 



International Technologies and Systems Corp. 

12 Captain's Watch. Huntington, CT 06484 
Phone: (203) 929-1B80 Telex: 28S716 ITSCO UR 

VISA and MasterCard accepted 



Circle 262 on Reader Service Card 









; save or restore the screen image 


in the buffer 


; provided by BASIC, depending on the value of IFN/G 
mov dl, byte ptr col_cnt 
mov dh,byte ptr row_cnt 


mov 


ax, if n 




pop 


ds 


; point to BASIC ' s data 


mov 


di,[bp]+18 


seg 

; point to buffer in 
BASIC 


push 


bx 


;save the screen 
offset; 


mov 


cl,dh 




mov 


ch,0 




sll: push 


ex; 


do for col_cnt columns 


push 
mov 


bx 
cl,dl 




mov 


ch,0 




sl2: push 
cmp 


ex 

ax,l 

down 




mov 


ex, [di] 


; restore the screen 


mov 

jmp 

down: mov 


es: [bx] ,cx 

next 

ex, es: [bx] 




;save the screen 


image-byte & attribute 


mov 
next : inc 


[di] ,ex 
bx 




inc 


bx 




inc 


di 




inc 


di 




pop 
loop 
pop 
add 


ex 
sl2 

bx 
bx, 160 




pop 
loop 
push 
pop 


ex 

Sll 
CS 

ds 


;point to data (code) 


pop 


bx 


seg 
;screen offset, next 


cmp ax, 1 
jne exit 
; set up registers to draw the top 
mov dl,201 


part 

; in ease IFN$=2 
of the window 

;left end-of-line 






character 


mov 


dh,187 


; right end-of-line 
character 


mov 


al,205 


; middle character of 
line 


mov 


ah,attr 


; window attribute 


mov 
call 


cx,col_cnt 
put_line 


; length of line 
;do it 


add 


bx, 160 


; increment bx 


;now for the body 


of the window 




mov 


dl,186 


; left-end character 


mov 


dh,186 


; right-end character 


mov 
mov 


al, 32 
ah,attr 


; middle character 


mov 
dec 


ox,row_cnt 
ex 


;do forNROW^s less 2 


dec 


ex 




rowl : push 
mov 


ex 
cx,col_cnt 




call 
add 


put_line 
bx, 160 


;next line in window 


pop 
loop 
; finish it of f 


ex 
rowl 




mov 


dl,200 


; left end 



208 Inside the IBM PCs • B Y T E 1987 Extra Edition 



BYTE 

LISTINGS 

XQU&WAY! 

It's easy. Now there are 
three ways to get source- 
code listings that go with 
BYTE articles — on disk, 
in print or on line. 

LISTINGS ON 

DISK BYTE listings on 
disk are right for you if 
you want to compile or 
run programs quickly. 
Disks are now available 
by annual subscription as 
well as individual orders. 
BYTE offers listings in 11 
popular disk formats. 

LISTINGS IN 

PnlNI This print sup- 
plement contains source- 
code listings described in 
the issues of BYTE. 

LISTINGS FROM 

BIX (BYTE Information 
Exchange) By joining 
BIX, you can download 
BYTE source-code 
listings at standard BIX 
rates. See BIX informa- 
tional ad listed in Reader 
Service index in this 
issue. 



FOR DIRECT 
ORDERING GALL 
TOLL FREE: 
8002585485 

Call: M-F, 8:30 a.m. to 
4:30 p.m. Eastern Time 

(603-924-9281 for New 
Hampshire residents) 

For credit card 
orders only. 



ON DISK 



Please send me single disks in 
the format checked for the 
following 1987 issues: 

□ January □ August 



□ February 


□ September 


□ March 


□ October 


□ April 


□ November 


□ May 


□ December 


□ June 


□ IBM PC Issue 


□ July 





Disks of listings for December 
1985 and all 1986 issues are 
available at the prices stated at 
the right. Please mark the 
appropriate format and note 
the issue date below. 



Month 
Year _ 



IN PRINT 

1987 Annual 
Supplement 
Subscription Rates 

IN USA: 

only $18.00 
(Save $9.80) 

OUTSIDE USA: 

only $21.00 
(Save $10.80) 





IN USA: 


OUTSIDE USA: 




Single 


Annual 


Single 


Annual 




Month 


Subscription 


Month 


Subscription 




(one disk) 


(13 disks) 


(one disk) 


(13 disks) 


5% inch: 


□ $8.95 


□ $69.95 


□ $10.95 


□ $89.95 


□ IBM PC 




(Save $46.40) 




(Save $52.40) 


□ Apple II 










□ Kaypro 2 CP/M 










□ Tandy Mod 4 










□ MS-DOS 8 Sector 










□ Tl Professional 










3% inch: 


□ $9.95 


□ $79.95 


□ $11.95 


□ $99.95 


□ Apple Macintosh 




(Save $49.40) 




(Save $55.40) 


□ Atari ST 










□ Amiga 










□ HP 150 










□ IBM PS/2 










8 inch: 


□ $9.95 


□ $79.95 


□ $11.95 


□ $99.95 


□ CP/M 




(Save $49.40) 




(Save $55.40) 



1987 Supplement Issues 

IN USA: 

□ January through March 1987 for 
only $6.95. 

□ April through June 1987 for on- 
ly $6.95. 

□ July through September 1987 
for only $6.95. 

D October through December 
1987 for only $6.95. 

OUTSIDE USA: 

D January through March 1987 for 
only $7.95. 

□ April through June 1987 for on- 
ly $7.95. 

□ June through September 1987 
for only $7.95. 

□ October through December 
1987 for only $7.95. 



1986 Supplement Issues 

IN USA: 

□ January through June 1986 for 
only $8.95. 

□ July through September 1986 
for only $6.95. 

□ October through December 
1986 for only $6.95. 

□ 1986 Annual Subscription for 
only $18.00 (Save $4.85). 

OUTSIDE USA: 

□ January through June for only 
$9.95. 

□ June through September for 
only $7.95. 

□ October through December for 
only $7.95. 

□ 1986 Annual Subscription for 
only $21.00 (Save $4.85). 



FOLD 
HERE 



COMBINED DISK 
AND PRINT 
SUBSCRIPTION 

Bundled together, 
giving you the 
convenience of disk- 
based source-code plus 
the ease of reference of 
print. 





IN USA: 


OUTSIDE USA: 




Annual Subscription 


Annual Subscription 




(13 disks & 4 Issues) 


(13 disks & 4 Issues) 


5% inch: 


□ $84.95 


□ $104.95 


□ IBM PC 


(Save $59.20) 


(Save $69.20) 


□ Apple II 

□ Kaypro 2 CP/M 

□ Tandy Mod 4 

□ MS-DOS 8 Sector 






□ Tl Professional 






3Vi inch: 


□ $94.95 


□ $114.95 


□ Apple Macintosh 


(Save $62.20) 


(Save $72.20) 


□ Atari ST 






□ Amiga 

□ HP 150 






□ IBM PS/2 






8 inch: 


D $94.95 


D $114.95 


□ CP/M 


(Save $62.20) 


(Save $72.20) 



FOL 
HER 



IBM 



Name_ 



Address. 
City 



State. 



County or Parish _ 

Credit Card if 

Exp. Date 



Country. 



.Zip. 



Signature. 



Date. 



Please allow 4-8 weeks for delivery. 



□ Check enclosed 

□ MasterCard 

□ VISA 

□ U.S. Funds enclosed (If ordering 
from outside the U.S. please remit in 
U.S. funds drawn on a U.S. bank. 
Thank you.) 



BYTE M 



FOLD 
HERE 



BUSINESS REPLY MAIL 

FIRST CLASS MAIL PERMIT NO. 1 PETERBOROUGH, NH 



POSTAGE WILL BE PAID BY ADDRESSEE 



BYTE 



Listings 



NO POSTAGE 

NECESSARY 

IF MAILED 

IN THE 

UNITED STATES 




One Phoenix Mill Lane 
Peterborough, NH 03458-9990 

III II. .LI, I, I, LI, I, LI, LI, Lll II, I 



FOLD 

HERE 



Circle 184 on Reader Service Card 



WINDOWS FOR BASIC 





mov 


dh,188 


; right end 




mov 


al,205 


;middle 




mov 


ah,attr 


; attribute 




mov 


cx,col_cnt 


; length 




call 


put_line 




exit: 


pop 


ss 


; restore BASIC'S 
registers 




pop 


es 






pop 


ds 






pop 


bp 






ret 


14 




windo 


endp 




;end of main proc 




,put_line - puts a : 


Line on the screen 




assume 


upper left of screen area 


pointed to by es 






bx points 


to offset of window in the screen 






dl,dh end 


-of-line characters 






al, ah midline character and attribute 






ex contains line length put_line proc near push 




bx 






; first, 


save bx 








mov 


es: [bx] ,dl 






inc 


bx 






mov 


es: [bx],ah 






inc 


bx 






dec 


ex 






dec 


ex 




dll: 


mov 


es: [bx] ,al 






inc 


bx 






mov 


es: [bx] ,ah 






inc 


bx 






loop 


dll 






mov 


es: [bx],dh 






inc 


bx 






mov 


es: [bx],ah 






pop 


bx 


; recover bx ret 


I 


)ut_line 




endp 






> 
code 


ends 




;end of code segment 


, 


3t_seg 


segment 


stack 


'stack' ; define stack 








segment 




db 


20dup 


('stack ■) 


J 


st_seg 


ends 








^loader 


segment 


byte 


'zload' 




assume 


cs:zloader,ss 


:st_seg 




sndres 


equ 


$ 




: 


Loader 


proc 


far 


; loader entry point 




push 


es 






xor 


ax, ax 






push 


ax 






mov 


byte ptr 
es:l,27h 


; set up to 




xor 


ax, ax 


; terminate and stay 
resident 




mov 


es,ax 






assume 


es:zseg 


;point to low memory 




mov 


comm_of s t , o f f se t 






windo 


; subroutine entry 




mov 


comm_seg, seg 


rfindo ; within this 
segment 




mov 


dx, offset grp 


endres+lOOh ; don't 
save loader 




ret 








Loader 


endp 








> 
zloader 


ends 










end 


loader 





MATHPAK 87 



High Performance 8087 Software 



MATHPAK 87 is a set of over 
130 assembler coded numeri- 
cal routines for use with 8087, 
80287 or 80387 coprocessors. 
These routines arc highly op- 
timized and run up to 20 times 
faster than equivalent high- 
level language routines. To 
use MATHPAK 87 routines 
you simply call them from 
your program. A detailed and 
casy-to-rcad manual (180 
pages) gets you started in 
minutes. MATHPAK 87 
routines arc fast, convenient 
and reliable. 



MATHPAK 87 Timings 

Execution Times on an IBM XT 




-^/Turbo Pascal 
ATHPAK 87 



NcgV 



DotProd VAddV 
Routine 



MATHPAK 87 includes: 65 vector/scalar routines (vector add, subtract, ...); 24 
complex vector/scalar routines; 1 1 matrix manipulation routines (add, subtract, 
multiply, transpose, etc.); LU dccomposition/backsolving routines for real and 
complex systems; Gaussian elimination; matrix inversion; Gauss-Scidcl and 
tridiagonal equation solver routines; 6 EISPACK eigenvalue/vector routines; 2 
statistical and data-fitting routines; 5 FFr routines (1-D, 2-D, complex, real, con- 
volution); 6 spectral analysis routines (windows: Parzcn, Hamming, ...); routines 
for numerical integration and solution of differential equations; and missing func- 
tions for Modula-2 and Pascal: tan, loglO, aloglO, power, sinh, cosh and tanh. 

MATHPAK 87 routines are the fastest available! On an IBM XT, a IK complex 
FFT takes 1.85s (real 1.0s); LU decomposition of 90x90 matrix takes 29s; negating 
10,000 real vector elements takes 0.10s; dot product (length 10,000) takes 0.638s. 

$89 US for Turbo Pascal version. $119 us for ms Fortran, ibm Pro 

Fortran, Lahcy Fortran, MS C, Lattice C, Logitech Modula-2 or ITC Modula-2 
versions. Please specify version. Shipping $5 ($10 outside North America). 

Precision Plus Software, 3148 Kingston Road, Suite 209-276, Scarborough, 
Ontario, Canada M1M 1P4. Telephone: (416) 761-5309. 

International Dealers: England: Grey Matter Ltd.. Tel: (0364) 534W; USA: The 
Programmer's Shop:, Tel: (800)421-8006 or (617) 740-2510. 




Finally! A Keyboard Protector That: 

• PROTECTS CONTINUOUSLY - 24 HOURS A DAY - 

Against computer downtime due to liquid spills, dust, ashes, 
staples, paper clips and other environmental hazards. 

• REMAINS IN PLACE during the operation of your keyboard. 
Saf eSkin is precision molded to fit each key - like a "second skin." 

• EXCELLENT FEEL - The unique design eliminates any in- 
terference between adjacent keys, allowing smooth natural 
operation of your keyboard. 

• Saf eSkin IS VIRTUALLY TRANSPARENT - Keytops and 
side markings are clearly visible. In fact, SafeSkin is so clear, 
sometimes you may not know it's there! 

• DURABLE - LONG LASTING - SafeSkin is not a "throw- 
away" item. Many of our protectors have lasted over 3 years 
under continuous daily use, without failure. 

SafeSkin is available for most popular PC's and portables including: 
IBM, APPLE, AT&T, COMPAQ, DEC, EPSON, KEY- 
TRONICS, NEC, TANDY, TOSHIBA, WANG, WYSE, 
ZENITH. Specify computer make and model. Send $29.95, Check 
or M.O., VISA & MC include exp. date. Dealer inquiries invited. 
Free brochure available. 

Merritt Computer Products, Inc. 

4561 S. Westmoreland / Dallas, Texas 75237 / 214/339-0753 



Circle 131 on Reader Service Card 



Inside the IBM PCs 209 



WINDOWS FOR BASIC 



for programs that want to pass informa- 
tion to one another. Your BASIC pro- 
grams will know to look here for the loca- 
tion of the window subroutine. Its address 
is stored as two 16-bit words: a segment 
address and an offset within the segment. 
After setting the pointers, the loader exe- 
cutes a terminate-but-stay-resident inter- 
rupt, which effectively incorporates the 
window subroutine, but not the loader, 
into DOS. 

Using Windows 

First, you have to generate the 
WINDOW.EXE file by one of the two 
methods mentioned earlier. When you 
begin a session in which you will use the 
window subprogram, you must first exe- 
cute WINDOW to install the subroutine. 
From the DOS prompt, type WINDOW. 

The A> prompt should return momen- 
tarily. At this point, the subroutine is in- 
stalled and will remain so until you re- 
boot the computer. All a BASIC program 
has to do is look at the ICA to see where 
the subroutine is located and call it. 

A problem might arise if you attempt 
to keep the window subroutine in mem- 
ory while running non-BASIC programs. 



Some of these other programs might use 
the ICA for their own purposes; this 
would destroy the address left by the win- 
dow loader, and when your BASIC pro- 
gram came to call it again later, the re- 
sults would be unpredictable and almost 
certainly undesirable. 

If you have any doubts about whether 
your previously loaded window subrou- 
tine has been "lost" by another program 
using the ICA, repeat the installation pro- 
cess; it will cost you only another IK byte 
or so of memory. To reclaim the mem- 
ory, you must reset the computer. 

Now look at what your BASIC applica- 
tions program has to do to call the subrou- 
tine. I'll present some specific examples 
later, but for now I'll look at the more 
general steps. First, your program has to 
find out where the subroutine is located. 
The following statements should be exe- 
cuted before the first call: 

10 DEF SEG=0 
20WINDO=PEEK(&H4F0) + 

(256*PEEK(&H4F1)) 
30 SUBSEG=PEEK(&H4F2) + 

(256*PEEK(&H4F3)) 
40 DEF SEG=SUBSEG 



Table 1: Meanings of the bits contained in the attribute byte. 



Bit 



Value 



Meaning 






1 


1 


2 


2 


4 


3 


8 


4 


16 


5 


32 


6 


64 


7 


128 



Blue component, foreground 
Green component, foreground 
Red component, foreground 
Intensity component, foreground 
Blue component, background 
Green component, background 
Red component, background 
Blinking component, foreground 



Listing 2: A BASIC program that calls the windowing subroutine to conduct a 
dialogue with the user. 

100 ■ Example program 1 - Window Dialogue 

110 'Get location of windows subroutine 

120 DEFSEG=0 

130- WIND0=PEEK(&H4F0)+(256*PEEK(&H4F1)) 

140 SUBSEG=PEEK ( &H4F2) + ( 256*PEEK ( &H4F3 ) ) 

150 DEF SEG=SUBSEG 

160 ' Define a buffer to hold a 7-by-40 array 

170 DIMBUFR#(280) 

180 ■ Set up the subroutine arguments 

190 R0W1#=2 ■ window will appear in 3rd row, 

200 C0L1#=3 ' 4th column 

210 NR0W#=7 ' it will be seven rows deep and 

220 NC0L#=40 ' 40 columns wide 

230 ATTR#=80+3+8+128 ' magenta bknd, cyan f gnd, intense, blinking 

240 'Open window 

250 IFN*=1 

260 CALL WIND0 (BUFR# ( ) , IFN*, R0W1# , C0L1#, NR0W# , NC0L#, ATTR£) 

270 ■ Extract foreground and background colors from ATTR/S 

continued 



WIND0 is the address of the memory-resi- 
dent subroutine, and SUBSEG is its mem- 
ory segment. To call the program, you set 
the segment using DEF SEG and issue a 
call to the subroutine address. 

The format of the subroutine call is 
CALL WIND0 (BUFR#(I),IFN#,R0W1#, 
C0L1#,NR0W#,NC0L#,ATTR#). Note that 
the arguments are all integers, and they 
must all be initialized before the call. 

R0W1# and C0L1# values specify the lo- 
cation of the window on your screen, in 
terms of the position of its upper left 
corner. Row numbers run from to 24, 
and column numbers from to 79. To 
place a window in the upper left corner of 
your screen, set R0W1# and C0L1# to 0. 

NR0W# and NC0L# parameters deter- 
mine the size of the window in rows and 
columns. Valid ranges are 2 to 25 for 
R0W1# and 2 to 80 for C0L1*. 

ATTR# determines the window's back- 
ground color and the color of its double- 
line outline. 

BUFR#( I ) is a buffer for the subroutine 
to temporarily store the screen contents. 
It must have a dimension of at least n, 
where n is the number of rows times the 
number of columns of the biggest window 
you will use. (Since an integer holds 2 
bytes, one array element will hold one 
screen location: character plus attribute.) 
If you plan to have more than one window 
active at a time, the dimension of BUFR# 
must be large enough to handle the con- 
tents of all the open windows. 

I is an index to the array element in 
BUFR# where you want to start storing 
screen contents. You must supply it. For 
instance, say you want to create 5-by-10 
and 12-by-30 windows. BUFR# would be 
dimensioned as a 410-element array. You 
would call the window subroutine the 
first time with I pointing to BUFR^(l) 
and the second time with I pointing to 
BUFR#(51). 

IFN# is a function switch. If IFN# is 1, 
screen contents are saved starting at 
BUFRX(I), and a window is opened on 
the screen. If IFN# is 2 (or any value 
other than 1), NR0W# x NC0L# elements 
from the buffer are put back on the 
screen, effectively closing the window. 
The usual sequence of operation is to call 
WIND0 with IFN* equal to 1 to fill BUFR#, 
then with IFN# equal to 2 to replace it. 
For special purposes, however, you could 
fill BUFR# with whatever you wanted, 
then execute a call to WIND0 with IFN# 
equal to 2 to dump it quickly to a specific 
screen location. 

I wish to stress several points. Remem- 
ber that all parameters must be integers 
and must be initialized. The subroutine 
does not do any error checking for valid- 
ity of the arguments. Your program 

continued 



210 Inside thelBM PCs • BYTE 1987 Extra Edition 



Circle 214 on Reader Service Card — * 



AT compatibility and protected mode software for your XT. . . 

All This and OS/2! 





^.^^a^W^*^ 



fc^SSKSsSKff 




111C 



MotherCard 5.0 



With the MotherCard 5.0 from 
SOTA Technology your XT or 
compatible can run Microsoft's 
OS/2 and all the next 
generation software. 

The MotherCard 5.0 is a full-blown 80286 
computer on a card. When installed in any 
8088 based PC or XT, it becomes fully AT 
compatible, it also provides all the related 
hardware that is required to run OS/2 as 
well as the speed and memory needed to 
meet future computing demands. 



MotherCard 5.0 
Standard Features: 

• 8, 10 or 12.5 MHz 80286 on board 

• 80287 socket 

• AT compatible Real-time clock 

• Reconfigurable BIOS in static RAM 
and EPROM 

• 640KB for DOS & 320 KB for EMS - 
expandable to 16 MB 

• Software includes: RAM disk, Disk Cache, 
and Print Spooler 



Compatibility: The card contains a 
reconfigurable BIOS stored in battery- 
backed RAM. This allows for an easy 
upgrade for a new BIOS, thus ensuring full 
compatibility for tomorrow's applications, 
including, of course, OS/2. 
Speed: 8, 10, or 12.5 MHz - can run up to 
12 times faster than your PC or XT and up 
to 2 times faster than an AT! 
Memory: The board comes standard with 
1 MB of memory (640 KB of DOS and 320 
KB of EMS memory) Expandable up to 16 
MB with an additional DaughterCard. 
The MotherCard 5.0 works with all EGA, 
CGA, LAN, PC networks and tape backup 
systems without a hitch. 




STATE OF THE ART TECHNOLOGY™ 

SOTA TECHNOLOGY, INC. 

657 N. Pasioria Ave., Sunnyvale, CA 94086 



If you have an XT and feel the era of 
protected mode and OS/2 is going to pass 
you by, don't worry! The MotherCard 5.0 
from SOTA Technology will breathe new 
life into your old machine and let you 
avoid all the hidden costs of buying a new 
AT system (learning a new machine, 
configuring your new system etc.). 
Remember the MotherCard 5.0 - it's an 
instant AT for a lot less! 
SOTA Technology: 
Turning the simple into the superlative. 



The MotherCard 5.0 can run: 

• Protected mode software: VDISK, Oracle's 
Professional ORACLE, Micro Focus 
COBOL/2 

• Novell Advanced Netware 

• 3Com 3+ Network 

• EGA & EGA Monitors of all kinds 

• LOTUS 1-2-3 and SYMPHONY 

• Ashton-Tate dBASE III Plus, Multimate 

• All word processing programs 

• MicroSoft Windows 

With reconfigurable BIOS, MotherCard 5.0 
will support protected mode OS/2 



The above screen was created with MicroSoft OS/2 software developer's kit in an IBM PC with the MotherCard instal ed. 
IBM, OS/2, PC, XT, AT are trademarks of IBM Inc. All other products mentioned are trademarks of their respective companies. 



See us at Comdex/Fall '87 
Booth HC521 



WINDOWS FOR BASIC 



280 FG=ATTR£ AND 15 

290 BG=INT(ATTR#/16) AND 7 

300 COLOR FG, BG 

310 ' Conduct dialogue in window 

320 LOCATE ROWl^+3 , COLl^+3 

330 PRINT "What is your name " 

340 LOCATE ROWl^+5 , COLl^+3 

350 INPUT NAM$ 

360 'Close window 

370 IFN#=2 

380 CALL WINDO (BUFR# ( ) , IFN# , R0W1# , C0L1*, NR0W# , NC0L& ATTR£) 

390 COLOR 7, 



Listing 3: A BASIC program that places multiple, overlapping windows on the 
screen, then removes them. 



100 
110 
120 
130 
140 
150 
160 
170 
180 

190 
200 

210 

220 

230 

240 

250 

260 

270 

280 

290 ' 

300 

310 

320 

330 

340 

1000 

1010 

1020 

1030 

1040 

1050 

1060 

1070 

1080 

1090 

1100 

1110 

1120 

1130 

2000 

2010 

2020 

2030 

2040 

2050 

2060 

2070 

2080 

2090 

2100 



' Example program 2 - Multiple Windows 
t 

' get location of windows subroutine 

DEFSEG=0 

WINDO=PEEK(8cH4FO)+(256*PEEK(&H4F1)) 

SUBSEG=PEEK ( &H4F2 ) + ( 256*PEEK ( &H4F3 ) ) 

DEF SEG=SUBSEG 

' window data 

DATA 3, 3, 20, 24, 44, 5, 5, 16, 30, 27, 2, 50, 15, 24, 109, 15, 40, 5, 

25, 79, 13, 38, 10, 20, 219, 0, 0, 25, 80, 62 

MAXBUF=3800: MAXWND=5 

DIMBUFR^(MAXBUF), R(MAXWND), C(MAXWND), NR(MAXWND), NC(MAXWND), 

NBYT(MAXWND) 

NWND=0: NBUF=0 

' Open windows 

FOR IDX=0 TO MAXWND 

A$=INKEY$ : IF A$=" " THEN 240 

READ ROWljg, C0L1#, NR0W#, NC0L#, ATTR£ 

GOSUB 1000 
NEXT 

NWND=NWND-1 
close windows 
FOR IDX=MAXWND TO STEP -1 

A$=INKEY$: IF A$="" THEN 310 

GOSUB 2000 
NEXT 
END 

1 Subroutine to open a window 
t 

' check for invalid arguments 

IF NBUF+NR0W#*NC0L# > MAXBUF THEN 1130 

IF R0W1£ < OR C0L1£ < THEN 1130 

IF R0W1#+NR0W > 25 OR C0L1#+NC0L > 80 THEN 1130 

' store window data 

R(NWND)=R0W1#: C(NWND)=C0L1#: NR(NWND)=NROW#: NC(NWND)=NCOL* 

NBYT(NWND)=NBUF ' number of display positions occupied 

IFN*=1 

CALL WINDO (BUFRJg(NBUF), I?H%, ROWl^, C0L1£, NROW^, NCOL*, ATTR£) 

NBUF=NBUF+NROW#*NCOL# 

NWND=NWND+1 

RETURN 

'Subroutine to close a window 

i 

' recover window data 

R0W1# = R(NWND) : C0L1#=C(NWND) : NROW#=NR(NWND) : NCOL#=NC(NWND) 

' check for invalid arguments 

IF R0W1# < OR C0L1# < THEN 2090 

IF R0W1#+NR0W > 25 OR C0L1#+NC0L > 80 THEN 2090 

IFN#=2 

CALL WINDO (BUFR#(NBYT(NWND)), IFN*, ROWl^, COLlJg, NR0W#, NC0L& ATTR£) 

NWND=NWND-1 

RETURN 



should do this. Also, make sure BUFR# is 
big enough to hold whatever you are go- 
ing to put into it. If you try to stuff a big 
chunk of screen into a small buffer, you 
won't get a subscript out of bounds 
error; your program or BASIC will get 
clobbered, and it will be big-red-switch 
time. 

Again, if you leave BASIC to run some 
programs that you suspect might alter the 
first two words of the ICA, it would be 
safe to install another copy of the sub- 
routine. 

In the next section, I'll present two 
BASIC programs that illustrate some 
techniques for using the windowing 
subroutine. 

Sample Programs 

Listing 2 demonstrates the use of win- 
dows to conduct a dialogue with the user. 
The idea is to place a window on the 
screen, then use LOCATE to position the 
cursor within the window for input and 
output. You could also capture input by 
using INKEY$. Note that WINDO numbers 
rows and columns from to 24 and from 
to 79, respectively; LOCATE numbers 
them from 1 to 25 and 1 to 80. 

Line 230 shows how you can customize 
the window colors by adding together the 
desired characteristics. Lines 280 and 
290 demonstrate a technique for ex- 
tracting the foreground and background 
colors from the attribute value. This lets 
you set BASIC'S text-output colors to 
match the window colors with the COLOR 
statement. Try this program when the 
screen is filled with text. For example, 
try it when the screen is filled with the 
program listing. 

Listing 3 illustrates the use of multiple, 
concurrent windows. When you run this 
program, every time you hit a key, one of 
six windows appears sequentially on the 
screen. As you keep pressing keys, the 
windows are closed. The window charac- 
teristics and positions are read from the 
data statement in line 180. 

This demonstration program shows 
how a large buffer provides storage for 
multiple windows. Note the check in line 
1030 to make sure that the assembly lan- 
guage program doesn't overflow the 
buffer. 

Not Just Window Dressing 

In this article, I've presented a subroutine 
that lets interpreted BASIC do win- 
dowing, a technique that will give your 
programs a state-of-the-art look. Apart 
from the usefulness of the program itself, 
it demonstrates how you can extend inter- 
preted BASIC'S capabilities with assem- 
bly language subroutines and illustrates a 
technique for interfacing such subrou- 
tines to BASIC. ■ 



212 Inside the IBM PCs • BYTE 1987 Extra Edition 



XyWrite III Plus: 
For People Who Write 




People who write a lot have always de- 
pended on XyWrite to get the job 
done. Datapro Research Corporation said 
XyWrite III was ". . . the fastest word proces- 
sor ... its power and flexibility are un- 
matched." Now XyWrite III Plus introduces 
authoring tools that will make you even 
more productive than before. 

XyWrite III Plus has the flexibility to han- 
dle all of your writing needs, from simple 
letters and memos to special 
applications such as audio-visu- 
al scripts with multiple inde- 
pendent columns, or complex 
research papers which require 
one-key switching between 
notes, outlines and drafts - up 
to nine different files in nine 
windows. 

The on-line Spelling Checker 
sports a 100,000-word dictio- 
nary to help prevent embarrassing, and 
costly, typos. Check your spelling as you 
work. Or, if you'd prefer not to break your 
train of thought, wait and check the entire 



PostScript is a registered trademark of Adobe Systems, Inc. 



Circle 249 on Reader Service Card 



document when you've finished writing it. 
You can even check multiple files with a 
single command. A unique shorthand fea- 
ture saves valuable time by expanding pre- 
defined abbreviations; "asap" becomes "as 
soon as possible" instantaneously! And 
the renowned 220,000-word Microlytics' 
WordFinder® Thesaurus enhances creativity, 
putting alternative words at your fingertips. 

Use the Redlining feature to edit another 
writer's document. Mark suggested changes 
to the text but leave the original material 
intact. Combine Redlining with Hidden 
Notes and you have an ideal way to share 
thoughts with the original author. 

XyWrite III Plus provides unmatched laser 
printer support (including PostScript) for 
desktop publishing. Whether you're using 
cartridge or downloadable fonts, or mixing 
different point sizes on a line, XyWrite III 
Plus will automatically hyphenate and justi- 
fy ... as you type. A host of vertical spacing 
commands give you maximum 
control over vertical movement 
as well. And XyWrite III Plus lets 
you Include ready-to-print files 
from other sources, eliminating 
the need to cut and paste. 




The superior output capabilities 
of XyWrite III Plus, combined 
with an established reputation 
for speed and flexibility, clearly 
indicate that there is only one choice for 
word processing software. If you write, you 
need XyWrite III Plus. For more informa- 
tion and the name of a dealer near you, 
call or write today. 




3 Loomis St., Bedford, MA 01730 
(617) 2754439 

BYTE 1987 Extra Edition • Inside the IBM PCs 213 



Safety in Numbers 






year warranty 

100+ 

G shock rating 



hours, MTBF 



Reliability. The attribute that has made Silicon Valley Computer the 
world's leading manufacturer of ruggedized IBM™ compatible equip- 
»menL Reliability proven by the successful installation of thousands of 
disk and tape systems monthly. Superiorengineering and meticulous care in 
manufacturing and testing have been the foundation of this reliability since 1982. 
We offer a full selection of ruggedized hard-disk cards and high-quality 
commercial-grade disk-drive kits ranging in capacity from 21 to 512 mega- 
bytes. Also available are tape subsystems, 8- and 16-bit SCSI/ESDI/MFM/RLL 
disk controllers, Token Ring Ethernet controllers (Novell compatible), 3.5- 
inch floppies, 360 KB, 720 KB, 1200 KB, and 1440 KB floppies. 

Tens of thousands of units are currently being used by the U.S. Navy, 
NASA, Pentagon R&D, major banking institutions, and numerous small busi- 
nesses. All products meet or exceed stringent performance criteria. SVC 
established these standards to satisfy the needs of our growing list of sophis- 
ticated customers. 

Compatibility. 

Silicon Valley Computer drives have been interfaced with most IBM PC, XT, 
XT286, ATs and compatibles. Over 50 clones have been tested as 100% 
compatible with our drives using IBM PC-DOS 3.1/3.2/3.3. 

We are also the first company in the industry to supply hard disk add- 
on units for the new IBM Personal System 2 Model 30, Model 60, and Model 
80 machines. 

Service. 

Quality customer service is as important to us as the quality of our product 
Ninety percent of all orders are shipped within 24 hours of receipt Each order 
is accompanied by complete documentation, software, cables and mounting 
hardware. All products are available with our industry-leading two-year swap- 
out warranty. When you want the best product, service and reliability, at very 
competitive prices, call Silicon Valley Computer. 



Booths 321 and 323 



SILICON VALLEY 

COMPUTER 

140 Archer Street, San Jose, California 95112 • 408 288-8837 

TELEX 821299 SILICON VLY • FAX 408-947-1353 

Circle 202 on Reader Service Card 




The Gold Card (hard-disk-card) 

Silicon Valley Computer has the widest selection available. 



RUGGEDIZED 

21R MB 80G shock • 65 ms w/auto head lifters • 30,000 hr MTBF (MFM) 
32R 80G shock • 65 ms w/auto head lifters • 30,000 hr MTBF (RLL) 
40R 100G shock • 29 ms w/auto head lifters • 30,000 hr MTBF (SCSI) 
40AT 100G shock • 26 ms/hd lifters • 100% AT compatible • 30,000 hr MTBF 

SILENT RUNNING 

21L MB 65 ms • Oxide media • 5,000,000 BPS • 10 W, 30,000 hr MTBF (MFM) 
21F 65 ms • Plated media • 30 dB • 5,000,000 BPS • 25,000 hr MTBF (MFM) 
32F 65 ms • Plated media • 30 dB • 7,500,000 BPS • 25,000 hr MTBF (RLL) 
50F 62 ms • Plated media • 30 dB • 7,500,000 BPS • 25,000 hr MTBF (RLL) 



Hard-DiskPCKits(half height) 



21L MB 65 ms • Oxide media • 5,000,000 BPS • 10 W • 28,000 hr MTBF (MFM) 

32F 65 ms • 30 dB • Plated media • 7,500,000 BPS • 20,000 hr MTBF (RLL) 

40R 29 ms • Plated media • 8,000,000 BPS • 10 W • 30,000 hr MTBF (SCSI) 

40 26 ms • World's fastest 40 MB drive • 30,000 hr MTBF (MFM) 

50F 62 ms • 30 dB • Plated media • 7,500,000 BPS • 20,000 hr MTBF (RLL) 



Hard-Disk PC Kits (full height] 



30 MB 

72 

120 

150 

234 

317 



40 ms • 30,000 hr MTBF • 5,000,000 BPS (MFM) 
26 ms • 30,000 hr MTBF • 5,000,000 BPS (MFM) 
28 ms • 30,000 hr MTBF • Novell compatible (MFM) 
28 ms • 30,000 hr MTBF • 10,000,000 BPS (SCSI/ESDI) 
28 ms • 30,000 hr MTBF • 7,500,000 BPS (SCSI) 
28 ms • 30,000 hr MTBF • 10,000,000 BPS (SCSI/ESDI) 
100 ms • Removable WORM • Optical/laser (SCSI) 



IBM Compatible Devices 



60 MB Tape systems • Internal mounting, half-height DC 600 A cartridge 

60 MB Tape systems • External mounting power cabinet included 

40 MB Tape systems • Floppy interface DC2000 cartridge 
Token Ring compatible Ethernet boards • 10 MBPS 

SCSI Hard-disk tape controller • 8/ 16-bit switchable w/floppy 

MFM Hard-disk controller • 8/ 16-bit • 2 W • 2K buffer 

RLL Hard-disk controller • 8/ 16-bit • 2 W • 2K buffer 

ESDI Hard-disk/floppy/MFM controller • 8/16-bit • 10 MBPS 

IBM is a registered trademark of International Business Machines Corp. 



PRICES TOO LOW TO ADVERTISE! 

(Volume users/resellers, call 408 288-8838.) 



INSIDE THE IBM PCs 



Creating filters to work with MS-DOS' s pipe 
and redirection functions 



Pipes and Filters 



Paul Baker 



Pipes, filters, and I/O redirec- 
tion are standard features of 
Unix, and, with some creative 
programming, they can be- 
come powerful features for 
MS-DOS as well. Pipes let 
you string commands to- 
gether, with the output of one 
becoming the input of the 
next. Filters perform utility- 
like functions while letting 
data flow through them. I/O 
redirection lets you modify 
the standard data source and 
destination devices. You can 
use them together to execute 
multiple sequential functions 
with little effort. 

The three standard MS- 
DOS filters, FIND, SORT, 
and MORE, are designed to 
manipulate ASCII text files. 
FIND searches for a specific 
string of text and displays or 
counts those lines that include 
the specified text. SORT, as 
the name implies, sorts or al- 
phabetizes a file by a particu- 
lar column. MORE displays a 
file one complete screen at a 
time, pausing until told to 
continue. 

Piping Programs Together 

The pipe operator, a vertical 
bar {]), lets you give the sys- 
tem more than one command 
at a time. You place the pipe symbol be- 
tween commands or program names 
within a string of commands, and the out- 
put of one program automatically be- 
comes input to the next. 

For example, the DIR | SORT / +10 
command groups and sorts a directory by 
file extension, starting at position 10. 
The pipe symbol between the two com- 
mands indicates that the output of the DIR 
command goes to SORT rather than to the 
screen. The SORT filter sorts the infor- 




mation based on the characters starting in 
position 10 of each line of the directory 
and sends the sorted data to the screen. 

Redirecting I/O 

The standard MS-DOS data source and 
destination are called standard input and 
standard output, respectively. The key- 
board is the default for standard input, 
and the CRT screen is the default for stan- 
dard output. However, you can send input 
and output to other devices with the redi- 



rection symbols: > redirects 
a program's output, < redi- 
rects a program's input, and 
> > adds a program's output 
to the end of a new or existing 
file. 

The standard device for any 
error messages is called stan- 
dard error. It is always the 
CRT screen, and you cannot 
redirect it. This is an impor- 
tant point, since you would 
not want error messages to ap- 
pear in your redirected output. 
The redirection symbols 
tell MS-DOS to temporarily 
substitute another device for 
standard input or standard 
output. For example, you 
might redirect standard output 
to go to the printer, a serial 
port, or a disk file, and you 
might redirect standard input 
to come from a serial port or a 
disk file. 

Although redirection is a 
simple concept with a seem- 
ingly simple result, it is most 
important when you are using 
the pipe command. You usu- 
ally use pipes and filters in 
MS-DOS without the aid of 
applications programs. If you 
didn't have the redirection 
symbols, you would have no 
way of getting a printout or 
saving your results without 
developing other programs to perform 
these tasks. 

Programs that work with the pipe com- 
mand will also work well with the re- 
direction symbols. For my example, I 
displayed the sorted directory on the 
screen. However, I could have used the 

continued 

Paul Baker (Route 12, Box 461, Cleve- 
land, TN 37311) is a telecommunications 
analyst. 



Illustration: William Grant © 1987 



B Y T E 1 987 Extra Edition • Inside the IBM PCs 215 



PIPES AND FILTERS 



output redirection symbol (>) to send 
the directory to the printer or to a disk 
file. For example, 

DIR | S0RT/+1OPRN 

sends the sorted output to the printer; 

DIR | SORT /+10> DIR.TXT 

creates a file named DIR.TXT and sends 
the output to that file; and 

DIR | SORT /+10>> DIR.TXT 



appends the sorted directory to the end of 
DIR.TXT, which can be a new or an 
existing file. 

Filters versus Utilities 

Filters are a form of utility program, but 
utilities and filters differ in how their in- 
put and output sections are designed. 
Utilities accept data as input and supply 
data as output, while filters let data flow 
through them. 

Utility programs usually either stop 
and ask you for input and output file- 
names or let you include those filenames 



Save time and money— Get your hands on this. . . 

Diskette Duplicator 

The AFX-4B can deliver over 200 copies per hour, with your 
IBM PC, XT, AT, or compatible. 

Other features include: 

• 48TPI, 96TPI, and W Formats Available 

• Audible Alarm when Copies Completed 

• Preventive Maintenance Indicator 

• On Screen Production Statistics 

• Multiple Formats Supported 

• Diskette Serialization 




$1,995 



Datapath offers raorcThe AFX-4B is just one of the many innovative media duplication products 
we offer. For example, we also offer a broad line of Auto- Loading diskette duplicators, for high 
volume, unattended operation. And there's our new double speed, automatic diskette envelope 
stuff er, which easily handles up to 60 insertions per minute. Or perhaps our ^ " tape cartridge 
duplicator may be just what you are looking for. So, for more information about our products 
and company, or to order your AFX-4B Diskette duplicator, call us at. . . 408/998-4177 



Datapath 



The Leader in Precision 
Media Duplication Products. 



Datapath Technologies, Inc.,50 Airport Parkway, Suite 64, San Jose, CA 95110 



as parameters when you enter the pro- 
gram-execution command. For example, 
if I have a utility program named STRIP- 
.COM that strips control characters from 
word-processing files, the command 
STRIP INFILE.TXT 0UTFILE.TXT tells 
the program to accept input from IN- 
FILE.TXT and to place output in OUT- 
FILE.TXT. 

Filters work with the pipe and redirec- 
tion commands. Input comes from the 
previous filter, from standard input, or 
from another input device via redirec- 
tion. Output goes to the next filter or to 
standard output or is redirected to an- 
other output device. If you designed 
STRIP as a filter instead of as a utility , 
you could get the same result, and the 
program would work the same way. The 
command STRIP < INFILE.TXT > OUT- 
FILE. TXT accepts data from INFILE- 
.TXT and directs output to OUTFILE- 
. TXT. Creating STRIP to work as a filter 
doesn't reduce its ability to operate in 
stand-alone mode; it lets you use STRIP 
in a string of commands. 

For example, assume that INFILE- 
.TXT is an ASCII text file of customer 
records with four fields in each record: 
name, address, state, and ZIP code. The 
command STRIP < INFILE.TXT | FIND 
"TN" | SORT > 0UTFILE.TXT strips the 
control characters from INFILE.TXT, 
locates all people from Tennessee, sorts 
them by name, and saves the results in 
OUTFILE.TXT. You don't have to exe- 
cute three different programs separately 
and supply I/O information to each one. 
If I had a label filter, I could add it after 
SORT, redirect the results to the printer, 
and print mailing labels. 

Creating a Filter 

A filter is a program that accepts a string of 
characters from the input, manipulates or 
modifies the data, and writes the revised 
information to the output. The input and 
output are the only sections of the program 
that are unique to filters. If you design a 
filter to work with pipes, it won't need to 
ask for input and output filenames; proper 
use of the pipe automatically specifies 
source and destination. In addition, since 
filters have a minimum of user interaction, 
they don't need extensive menus. 

For example, look at INSERT. ASM, a 
filter that inserts data into a text file. 
[Editor's note: INSERT ASM is available 
in Microsoft Macro Assembler source 
code in print, on disk, and on BIX. See 
the insert card following page 208 for de- 
tails. Listings are also available on 
BYTEnet. Seepage 4.] The input data can 
include character strings, blanks, car- 
riage returns, linefeeds, formfeeds, or 
other information. INSERT passes data 
from one filter to the next via temporary 



216 Inside the IBM PCs • BYTE 1987 Extra Edition Circle 255 on Reader Service Card 



PIPES AND FILTERS 



files that are created, maintained, and 
deleted by MS-DOS at the completion of 
the pipe operation. This process is inher- 
ent in the pipe command and is automatic 
as long as you design the filter to operate 
with the standard devices. 

Listing 1 , get_ready, is the first im- 
portant code segment from INSERT - 
.ASM. It determines where to find the in- 
put data. The code loads the handle or the 
identification of 00, the standard input. 
Then it calls the MS-DOS function to du- 
plicate the handle. This function returns a 
new handle number in the AX register, 
which is to be used as the source of input. 
This handle could be for a temporary file, 
created by the pipe function, that contains 
the output from a previous filter; it could 
point to a file specified initially in the in- 
voking command; it could reference a re- 



directed device specified initially; or it 
could be the handle for the keyboard, the 
standard input. Then the program stores 
this handle in the BP register for later use 
and closes the duplicated file. 

Listing 2, read_data, uses the dupli- 
cate file handle. It points to the input 
buffer and loads CX with 800 hexadeci- 
mal to tell MS-DOS to read a buffer's 
worth (2048 bytes) of data. Then read_ 
data loads BX with the duplicate file 
handle from listing 1 that points to the in- 
put source, and the program calls the 
MS-DOS read function. If more data is to 
come from the input source, the program 
processes this current data and eventually 
returns to read_data to get more. 

Output in either character or string for- 
mat goes to the standard output device. 
Listing 3, send_byte, uses the MS-DOS 



Listing 1: This section 


oflNSERT. 


ASM determines where the program is to 


find the input data. 






get_ready: X0R BX,BX 




load handle 00 


MOV AH,45h 




get file duplicate 


INT 21h 






MOV BP,AX 




; set BP to new handle 


MOV AH,3Eh 




; close file 


INT 21h 







Listing 2: 


This segment of code reads 2K bytes into the input buffer. 


reacLdata 


: CLD 




MOV DX, OFFSET data_buf ; store in data_buf 




MOV CX, 800h ; set to read 2048 bytes 




MOV BX,BP ; set BX to file handle 




MOV AH,3Fh ; read input data 




INT 21h 




OR AX, AX ; data read? 




JNZ more_data 


no_data: 


IRET 



Listing 3: These three lines of code use the MS-DOS service call to send the 
output. 



send_by te : MOV DL, AL 
MOV AH, 02h 
INT 21h 



; load character in DL 

; send character to display 



Listing 4: This section of code 


handles 


any error messages. 


bad.param : MOV DX, OFFSET errl 




; point to error message 


MOV CX,2Fh 




; send 47 bytes 


MOV BX,0002h 




; point to standard error 


PUSH ES 




; save new data segment 


POP DS 




; get new data segment 


MOV AH,40h 




; send message to standard error 


INT 21h 







All you have to design is 
each filter's processing 
section; the I/O sections 
could be similar in each 
one. Keep them small 
and dedicated. 



service function 02h to send the character 
in DL to the screen. The output automati- 
cally goes elsewhere if you indicate redi- 
rection in the initial command. 

Handling Error Messages 

Almost by definition, error messages 
should go to the screen, even if you re- 
direct the output elsewhere. This pre- 
vents error messages from ending up in 
your printout, or worse, nested into a data 
file. If you could send your error mes- 
sages to a data file, you wouldn't know 
that you had errors until you needed to 
use the data. This could be frustrating. 

Listing 4, bad_param, handles the 
error messages that might occur while 
you are using the INSERT.EXE filter. 
First it points to the error message and in- 
dicates how many bytes to send. Then it 
loads 0002h into the BX register; this 
specifies the handle related to the stan- 
dard error device, which is almost always 
the CRT screen. Next, the program loads 
DS with the address of the data segment 
related to INSERT.EXE and calls the 
MS-DOS service function 40h to output 
the 47-byte error message to the standard 
error device. 

The Sky Is the Limit 

Once you are familiar with the input and 
output sections of filter programs, the sky 
is the limit regarding the variety of useful 
filters that you can develop. All you have 
to design is the filter's processing sec- 
tion; the I/O sections could be similar in 
each one. Remember to keep them small 
and dedicated, and therefore efficient. A 
study of INSERT. ASM can help with the 
programming techniques. 

Small dedicated programs or filters that 
operate with the MS-DOS pipe and re- 
direction symbols have a definite worth. 
With a little creativity and a few filters, you 
could handle many applications, including 
databases of phone and address lists, home 
inventories, and an index of what programs 
are on what disks, to mention a few. If you 
have any comments or suggestions about 
filter programs used with pipe and redirec- 
tion functions, I would be interested in 
hearing them. ■ 



BYTE 1987 Extra Edition • Inside the IBM PCs 217 



Pro Serve guarantees the lowest price 
for quality compatibles or your money back! 



PROSERVE+™ 

XT TURBO 



l\ PRO SERVE+ 



^JJ0**J 10 TURBO SIIRO 



PRO SERVED 

AT TURBO 



COMPLETE 
SYSTEM! 



COMPLETE! 



386 Version 

oiuy$2799 




STANDARD FEATURES: 

IBM PC/XT Compatible 

4/8 MHZ CPU speeds 

640k RAM Memory 

Two 360k Diskette Drives 

8 I/O Slots 

150 Watt Switching Power Supply 

FCC Approved Chassis 

AT Style Keyboard 

High- Resolution Amber Monitor 

Hercules Compatible Graphics Card 

Parallel Port 

User Manual 

Complete and Ready to Run! 



STANDARD FEATURES: 

IBM PC/XT Compatible 
4.77/10 MHZ CPU speeds 

Keyboard selectable 
640k RAM Memory 
Two 360k Diskette Drives 
8 I/O Slots 

Reset Switch and Keyboard Lock 
150 Watt Switching Power Supply 
FCC Approved Chassis 
AT Style Keyboard 
High-Resolution Amber Monitor 
Hercules Compatible Graphics Card 
Parallel Port 
User Manual 
Complete and Ready to Run! 



STANDARD FEATURES: 

IBM AT Compatible 

6/10 MHZ CPG speeds 

1Mb RAM Memory 

One High Density 1 .2 Mb Diskette Drive 

Hard/Floppy Disk Controller Card 

8 I/O Slots 

200 Watt Switching Power Supply 

FCC Approved Chassis 

Enhanced AT Style Keyboard 

High Resolution Amber TTL Monitor 

Hercules Compatible Graphics Card 

On-Board Clock/Calendar 

Parallel Port Gser Manual 

U\N & Multi-User Ready 

Complete and Ready to Run! 



Many other configurations and options available. Call Pro Serve for quotes. 
Requests For Bids on High Volume Orders Welcomed. 



HARD DRIVES 

Seagate 20Mb w/contr. ST225 $315 

Seagate 30Mb w/contr. ST238 369 

Seagate 20Mb for AT ST225 289 

Seagate 30Mb for AT ST4038 529 

Seagate 40Mb for AT ST251 499 

Seagate 80Mb for AT ST4096 929 

MONITORS 

Amber TTL w/Tilt Swivel Base $89 

Color RGB Monitor 269 

EGA Monitor w/Card 569 



ADD-ON BOARDS: 

Mono Graphics w/Par. Port $59 

Color Graphics w/Par. Port 69 

EGA Adapter 169 

XT Multi-Function w/Clock and 

Ser., Par., & Game Ports 69 

ATMulti-I/Ow/Ser., Par., 

& Game Ports 69 

2MB AT RAM pansion 295 

Serial Port 26 

PRINTERS 

Panasonic / Okidata / Citizen 
Toshiba / Hewlett Packard 




MOST ORDERS SHIPPED 
WITHIN 48 HOURS 



TERMS: All prices subject to change with- 
out notice. Shipping is FOB Phoenix, AZ. 
Minimum shipping charge is $2.50. UPS 
C.O.D. is $3.00 additional. Arizona residents 
only, add 6.7% sales tax. Allow extra two 
weeks shipping time when paying by person- 
al or company check. No extra charge for 
MasterCard or Visa orders. Add 4% for 
American Express orders. All shipments 
sent insured. Defective merchandise may be 
returned for repair or exchange only. Mer- 



chandise returned for credit is subject to a 
15% restocking charge. A Returned Materi- 
al Authorization number obtained from Pro 
Serve in advance must be shown on the 
shipping label for all returns. 

All systems are bumed-in and tested for 24 
hours. We configure systems boards, set up 
switches, format hard drives, perform all 
diagnostics, and check the system with your 
monitor. All systems are FCC approved: 
Class 1 5 J, Part B. 



"PURCHASE WITH CONFIDENCE! m.g 

Here is our commitment to you: 

30 Day Money-Back Guarantee — If you are not satis- 
fied wiUi any item you purchase from Pro Serve, you 
may return it within 30 days of me date of shipment for a 
fall refund. Returns must be "as-new", not modified or 
damaged, wiUi all warranty cards, manuals, and origi- 
nal packing intact, and must be pre-autJiorized by Pro 
Serve, and be shipped prepaid and insured 

One Year Limited Warranty - Pro Serve wan-ants the 
products it manufactures to be free from defects in mate- 
rials and workmanship for a period of one year from Uie 
date of shipment During this one year period, Pro Serve 
J will repair or replace, at its option, any defective prod- 
■\ ucts or parts at no additional charge, provided the prod- 
's uct is returned, shipping and insurance prepaid to the 
~i Pro Serve repair facility. 



^ 

a 



IBM PC/XT and AT are registered trademarks of IBM Corp. 



) 1987 Pro Serve Corporation 



CALL TOLL FREE: 

1-800-621-8285 

(In Arizona, Call: 1-252-0017) 

34 W. Monroe 300, Phoenix, AZ 85003 
Circle 139 on Reader Service Card 



INSIDE THE IBM PCs 



A BIOS building block for compatibility 



A Timing-Independent 

BIOS 



Howard N. Cohen and John Hanel 



Performance is a common 
way for IBM PC-compatible 
manufacturers to differentiate 
their machines from one an- 
other. The first important dif- 
ference between the IBM PC 
AT and its clones was the pro- 
cessor's clock speed. Begin- 
ning with the original AT, 
which had a 6-megahertz 
clock speed, IBM and manu- 
facturers of AT-class com- 
puters have increased perfor- 
mance by increasing the clock 
speed to 8, 10, and 12 MHz, 
and beyond. 

A number of AT-class ma- 
chines are available with user- 
changeable clock speeds. In 
these computers, the user can, 
through a switch on the com- 
puter or a command from the 
keyboard, change the clock 
speed among two or more 
possibilities. The most com- 
mon switching is between a 
fast clock speed (10 or 12 
MHz) and the 6-MHz speed 
of the original AT. 

To accommodate these ma- 
chines, and to deal with a pro- 
liferation of AT-class com- 
puters with different clock 
speeds, requires a BIOS that 
is not dependent on a specific 
machine clock speed for criti- 
cal timing loops. In this arti- 
cle, we will examine problems that can 
arise from increasing the processor clock 
speed, and we will show how speed-inde- 
pendent BIOS facilities can handle these 
problems. 

Timing Problems 

Many early purchasers of high-perfor- 
mance AT-compatible machines found 
that some applications would not operate 
properly on these machines. Some of 
these problems were caused by the higher 




processor clock speed. The most com- 
mon problem was with copy-protection 
schemes that were clock-dependent. To 
eliminate some of these problems, it be- 
came necessary to be able to switch 
speeds during machine operation. 

Users, seeking to increase perfor- 
mance by replacing system clock crys- 
tals, also found problems using their ex- 
isting BIOS. Upgrading machines from 6 
to 8 MHz could cause intermittent errors, 
most notably in accessing floppy disk 



drives. These problems be- 
came so widespread that IBM 
inserted a timing check into its 
AT BIOS to stop this practice. 

As technology increased 
capabilities, many manufac- 
turers found themselves in the 
unenviable position of having 
to support several compatible 
machines, each requiring a 
different BIOS. 

To help alleviate problems 
for AT-compatible manufac- 
turers, BIOS software should 
provide several features miss- 
ing from a BIOS designed to 
run at a single clock speed. 
First, keyboard speed-switch- 
ing support should let users 
dynamically change the speed 
of their machines and get 
around speed compatibility 
problems. 

Second, the BIOS should 
allow for timing indepen- 
dence. This lets one version of 
the BIOS run on many ma- 
chines, each with different 
speed characteristics. 

Speed Switching 

A multispeed, timing-inde- 
pendent BIOS lets a user 
change system clock speed 
from the keyboard on ma- 
chines that have hardware sup- 
port for multiple processor 
clock speeds. Speed switching typically 
uses either Ctrl- Alt- 1 or Ctrl- Alt-minus 
(keypad — ) to switch to low speed and 
either Ctrl-Alt-2 or Ctrl-Alt-plus (key- 

continued 

Howard N. Cohen is president ofSyenitic 
Software (10471 Lansdale Ave. , Cuper- 
tino, CA 95014). John Hanel is super- 
visor of compatible software develop- 
ment for Award Software Inc. (130 
Knowles Dr. , Los Gatos, CA 95030). 



Illustration: Tom Dolphens © 1987 



BYTE 1987 Extra Edition 



Inside the IBM PCs 219 



A TIMING-INDEPENDENT BIOS 



Speed switching and 
timing independence are 
crucial AT-compatible 
BIOS features. 



pad +) to switch to high speed. The 
speaker beeps once when switching to 
low speed and twice when switching to 
high speed. A change in the appearance 
of the cursor might or might not accom- 
pany the change in processor speed. 

Internally, switching speeds is done by 
calling a Setspeed routine. You can modi- 
fy this routine to perform whatever oper- 
ations are necessary to make the hard- 
ware switch speeds. The default Setspeed 
routine used in the Award Modular BIOS 
switches speed by changing both bits 2 
and 3 of the keyboard-controller output 
port (pins 23 and 24). This is compatible 
with most clone machines currently 
available that allow speed switching. 

A user program can also call the Set- 
speed routine externally. To invoke the 
routine, a far call is made to F000:E826 
hexadecimal. Prior to this call, the AL 
register must be set. If bit 7 = 1 , the 
speaker beeps, signaling a speed switch. 
If it is 0, the speaker is silent. 

The remaining 7 bits (0 through 6) are 
defined by the Setspeed routine installed 
for the particular machine. The default 
routine assumes a 7Fh for high speed and 
for low speed. Other routines may sup- 
port the other bit combinations for chang- 
ing to additional speeds or setting the 
number of memory wait states. 



In addition, you can execute Setspeed 
prior to running the power-on self -test 
(POST). You can configure the BIOS to 
run the POST in either low speed, high 
speed, or the default hardware speed. 
Also, you can configure the processor 
speed after the POST using the Setup 
program, which is resident in the BIOS. 

Timing Independence 

Many machine operations require an 
event to occur within a fixed amount of 
time. In most BlOSes, this time is nor- 
mally computed by executing a loop of in- 
structions a predetermined number of 
times. This is commonly referred to as a 
CPU timing loop. Figure 1 gives an ex- 
ample of a timing loop that will delay 
3000 microseconds on an 8-MHz AT 
when called with CX set to 100. 

When a machine runs at a different 
processor speed, the same timing loop 
will measure a different time interval. If 
the timing loop in figure 1 ran on a 12- 
MHz machine, it would delay for only 
2000 (is with CX set to 100. 

Using timing loops for critical timings 
has some problems. All the loop counters 
must be computed based on an expected 
processor speed. This means that a sepa- 
rate BIOS will have to be generated for 
each machine running at a different 
speed. Also, if a machine supports speed 
switching, the timing loops will not be 
correct for at least one of its speeds. 

To eliminate these timing-loop prob- 
lems, you can design a BIOS to be tim- 
ing-independent when possible. You do 
this by using a hardware pulse that, on 
most machines, has a constant period. On 
the AT, every time a memory refresh oc- 
curs, bit 4 of I/O port 61H changes state. 



WAIT_CPU: 

This procedure waits a given period of time before 
returning to the calling routine. It is based on the 
speed of the CPU and will work correctly only on an 80286- 
based machine running at 8 MHz, one wait state,, with the 
procedure starting on an even address . 



INPUT: CX = number of 30-/ts periods to wait 
OUTPUT: CX destroyed 



wait_cpu 


proc 




near 




wait_cpu_loop : 










push 


CX 








mov 


ex, 15 






; delay for 30 us 


loop 


$ 








pop 


ex 








loop 


wait_cpu. 


.loop 




-, decrement ex and loop 


ret 










wait_cpu endp 











Figure 1: A CPU timing loop. (All examples of timing independence in this article 
are taken from the Award Modular BIOS developed by Award Software.) 



Most compatible machines do the same. 
Instead of counting instruction loops, the 
BIOS can count refresh pulses to allow 
time-outs in the BIOS to last the same 
amount of real time regardless of the 
CPU speed and number of wait states in 
memory. Figure 2 shows an example of 
how to use the refresh pulse for timing. 

Unfortunately, not all compatible ma- 
chines have similar refresh characteris- 
tics. However, there are a number of dif- 
ferent ways to control the timing. 

Short refresh (15- to 60-jis update) is 
used if the refresh pulses are constant and 
less than 60 (is apart. This is the most 
common refresh method because the AT 
operates this way. 

On some machines (most notably the 
Intel 386 motherboard), the refresh pulse 
occurs much less frequently, sometimes 
as slow as 4 milliseconds. For these types 
of machines, use the long-refresh (greater 
than 60-fis update) timing method. This 
method is similar to the short refresh ex- 
cept that its actual timing routines have 
been modified to work with the longer 
pulse rate. 

On some machines, the refresh pulse is 
either unavailable or not constant (e.g., 
the refresh rate changes when the proces- 
sor speed changes). For these types of 
machines, you should use the CPU tim- 
ing method, which uses timing loops 
based on the CPU speed and not on the 
refresh rate. This results in a BIOS that is 
not timing-independent. 

To minimize the timing problems, the 
timing loops should be set for the fastest 
processor speed available. At lower 
speeds, the loops will execute longer, but 
this is usually less harmful than having a 
timing loop finish too quickly. Timing 
loops executing too quickly can result in a 
high number of incorrect data reads from 
disks or "device not ready" situations 
from the disk drive and I/O ports. An 
extra-long timing loop might affect sys- 
tem performance but generally will not 
result in a deluge of errors returned. 

Whenever the BIOS reaches an area of 
critical timing, it first determines what 
timing method it should use. Based on 
what you have configured, the BIOS calls 
the appropriate timing routines. 

Several parts of the BIOS have critical 
timing dependencies. The first is the re- 
fresh test, high range/low range. During 
the POST, the BIOS tests the refresh 
pulse occurring on port 61H bit 4 for a 
reliable rate. It does this by counting the 
number of refresh cycles that occur in 55 
ms. It then compares the result it gets 
with the high and low range and expects it 
to be between these two figures. This test 
executes only if you are using the refresh 
timing. 

continued 



220 Inside the IBM PCs • BYTE 1987 Extra Edition 



5 ways iQStant-C™ boosts productivity, 

even with programs larger than 1M*'. 



Create working, fully-tested programs faster than with any other C development system. 
Far faster than with so-called "Turbo" or "Quick" products. Here's how : 

1. More changes per hour. With Instant-C incremental compiler technol- 5 - More program creation, less 
ogy, there are no compile/link delays. Change your program, and Instant-C housekeeping. Instant-C lets you 
recompiles only the changes. Since this approach matches the way you work, time concentrate on program creation, be- 
savings over traditional compilers are substantial. Even large programs can run cause it transparently handles tasks 
seconds after editing. Compare the turnaround times after a simple change: which require separate programs and 

Turnaround time comparisons, in seconds command sets in other development sys- 

tems: cross-module syntax checking, 
source formatting, compilation, linkage, 
run-time error checking. With editing, 
compilation, and debugging, these serv- 
ices are integrated into a seamless envi- 
ronment, not simply pasted together with 
menus. 





955 Line File i 


149 Line Fik 




Compile, Link 


Tot 


Compile .Link 


Tot 


Instant-C 


<1,0 


<1 


4,0 


4 


Turbo-C 


12,18 


30 


6,18 


24 


Microsoft 4.0 


76,16 


92 


27,16 


43 



1 XCONT.C (955 lines), and XLIO.C (149 lines) used for the comparisons are part of Xlisp version 1.7, by David Betz. 
Each test was of a change to a single function in the file. Tests used 8Mz AT. Program length is as reported by Turbo C. 
Call us far detailed test results. 



2. Fewer bugs. Instant-C finds both 
syntax and run-time errors automati- 
cally, with error-checking far more 
extensive than compilers provide: 
number and size of arguments (even 
without function prototypes), pointer ref- 
erences, computed function addresses, 
airay references, overstoring of return 
addresses, arithmetic exceptions, con- 
version errors, shifts, unsigned pointer 
differences. Any one of these checks can 
save hours of debugging. 

3. Faster debugging. Instant-C 
source-level debugging features are the 
best available for C. You never have to 
change options, recompile, or relink to 
access these powerful capabilities: 



they're available even while editing: 

execute any C statement display data in any 
source code animation format 

source backtrace monitor variables/data 
set/clear any number of for changes 

breakpoints force return with/with 
step with/without calls out supplied value 

visual breakpoints 

4. Easier testing. After you write a 
function, verifying its operation is as 
simple as typing its name. You don't 
have to construct test programs orrecom- 
pile - Instant-C allows discrete testing 
and verification of individual func- 
tions. If the function is aborted due to an 
error, your execution environment is re- 
tained, and you edit and re-test without 
loading another program or issuing new 
commands. No time penalty for testing 
means more thoroughly tested, verified 
code. 



Because Instant-C treats the program 
as a database of code, it has an intelli- 
gence unmatched by compilers. While 
editing you can, for example, display 
declarations of called routines, without 
knowing where they're declared. Edit 
and save functions by name without 
worrying what file contains them. Forget 
about source formatting. Instant-C 
does it all for you, automatically. 

Transparency also means you can work 
in familiar ways: Instant-C editor key- 
strokes, formatting, and checking op- 
tions are all configurable, and its debug- 
ging language is a language you al- 
ready know: C. Instant-C magnifies 
your skill without testing your patience. 



Instant-C is compatible with your current C programs, 
libraries, and hardware: since it is standard C, you can move 
source back and forth between commercial compilers and 
Instant-C. Dynamic object code linking lets you link in 
object files or libraries when needed. Accepts Lattice, Micro- 
soft, Borland, and most commercial libraries. Graphics boards 
and non-PC hardware are supported as well. 



* Run huge programs now with Instant-C/ 
16M™. Based on Rational Systems' DOS/ 
16M™ technology, Instant~C/16M has all the 
features of Instant-C v. 3, plus support for 
large programs in 80286/80386 protected-mode 
memory; Multi-megabyte programs, including 
unmodified object code and programs too large 
for Codeview™ , can run immediately on DOS 
3.x, AT-class machines. 



New features in version 3.0 

ANSI C extensions (including function prototypes) 

enums, struct assignments and returns 

Microsoft C near/far extensions 

medium and large memory models 

visual breakpoints 

stacking and recall of commands 



tmrtttnt-C, In*tant-C/16M, DOS/1 6M are nademarksof Rational Systems, Inc. Turbo Cis a trademark of 
Borland mf I. Codeview, MSDOS are trademarks of MicxosoftCorp. PCDOS is atndcmarkof EBMCorp. 



For MSDOS and PCDOS, with 31-day money 
back guarantee. Includes editor, compiler, de- 
bugger, syntax checker, library, run-time error 

checker. Instant-C $495. 

Instant-C/16M $895. 

P.O. Box 480 
Natick, MA 01760 

Systems, Inc. (617)653-6194 



Rational 



Circle 195 on Reader Service Cart! 



BYTE 1987 Extra Edition • Inside the IBM PCs 221 



A TIMING-INDEPENDENT BIOS 



An important benefit is 
the ease with which 
system designs can be 
upgraded. 



For example, if a machine has a refresh 
pulse every 15 /-is, a "cycle" lasts 30 /-is, 
and the number of cycles in 55 ms will be 
55 (ms) / 30 0*s) = 1833.33 cycles. We 
recommend that you set the high value to 
this plus 25 percent, so in this example it 
will be 1833.33 + (0.25 * 1833.33) = 
2291 refresh cycles. The low value 
should be set to 25 percent below the nor- 
mal value. 

The next part of the BIOS that has a 
critical timing dependency is the floppy 
disk motor spin-up. Whenever you turn 
on a floppy disk motor, you must let it 
spin up to speed before you try to read or 
write to the floppy disk. The length of 
this period of time is determined by 
multiplying the value from the floppy 



disk parameter table times % second. 

The third part is the floppy disk head 
settle. After the head seeks to the appro- 
priate track on a floppy disk, a short wait 
must occur for the read head to stop vi- 
brating so that the read can occur reli- 
ably. The length of this period of time is 
determined by multiplying the value from 
the floppy disk parameter table by 1 ms. 

Printer initialization must occur before 
printing any characters. The printer-ini- 
tialization line is set and held low for a set 
period of time, then it is set high to com- 
plete the initialization. The recom- 
mended period of time is approximately 
65 ms. 

The keyboard check occurs during the 
POST. A command to initialize the key- 
board is sent to the keyboard. The BIOS 
then waits for the keyboard to respond. If 
the keyboard does not respond in the time 
specified, the BIOS assumes a keyboard 
is not present. This wait should be ap- 
proximately 100 ms. 

The next part is the floppy disk com- 
mand wait. Before the BIOS sends a com- 
mand byte to the floppy disk controller, it 
should wait up to Vi second for the con- 



WAIT_REFRESH: 

This procedure also waits a given time period before 
returning to the calling routine . It gets its timing from 
port 61H, bit 4, and will thus run on either 80286 or 
80386 machines at any clock speed greater than 6 MHz, 
with any number of wait states in memory . 

Port 61H, bit 4, changes state every time a memory 
refresh occurs . Memory refresh normally occurs 
once every 15 fis, so port 61H, bit 4, 
completes a cycle once every 30 /*s . 

The Modular BIOS uses this bit because very few 
applications will reprogram the memory-refresh time. 
Applications programs that want to be CPU-speed- 
independent should use timer channel 2. This will also 
let them run on 8086-based machines. 



INPUT: CX = number of 30-fis periods to wait 
OUTPUT: AL, CX destroyed 
WAIT_REFRESH proc near 



wr_state_0 : 








in 


al,6lH ;wait while port 61H, bit 4 




test 


al,010h ;is low 




,lz 


wr_state_0 


wr_state_l : 




;wait while port 6lH, bit 4, 




in 


al,6lH ;is high 




test 


al,010h 




jnz 


wr_state_l 




loop 


wr_state_0 

;30/ts have elapsed, 

;so decrement counter and wait 

j again. 




ret 




wait_refresh 


endp 





Figure 2: A refresh timing loop. 



troller to signal that it is ready to receive a 
command. 

The seventh BIOS part with critical 
timing dependencies is the floppy disk 
operation complete. After a command is 
issued to the floppy disk controller, the 
BIOS waits for the controller to complete 
the command for 1 Vi seconds. 

Next is the floppy disk status wait. 
After the floppy disk controller has com- 
pleted a command, the BIOS must read 
the status bytes from the controller. The 
BIOS should wait for Vi second for each 
status byte to come back from the control- 
ler before concluding that a controller 
malfunction has occurred. 

The fixed disk controller busy is also 
timing-dependent. Before sending com- 
mands or reading status from the fixed 
disk controller, the BIOS must wait for 
approximately 8 seconds for the control- 
ler to signal that it is ready before an error 
condition is returned. 

Next we have the fixed disk controller 
complete. After a command is issued to 
the fixed disk controller, the BIOS waits 
for the controller to complete the com- 
mand for 10 seconds before signaling an 
error. 

The next timing-dependent BIOS part 
is the fixed disk read/write long. When 
performing a read/write long on a fixed 
disk, the BIOS should wait 2 ms for the 
controller to accept/send the ECC (error 
correction code) bytes. 

Next is the communication wait. When 
the BIOS performs data transfers over the 
RS-232C port, it should wait approxi- 
mately 1 .2 seconds for the external de- 
vice to respond. 

The last one is printer busy. When the 
BIOS prints characters to the printer, it 
waits until the printer is not busy before 
sending the character. The time-out value 
is looked up in the ROM BIOS data area 
and multiplied by 1 second to determine 
the time-out for the printer. 

Building Block of Compatibility 

Manufacturers of AT-class computers face 
the task of providing unique features for 
products that, in order to be salable, must 
provide a specific level of functionality. 
A BIOS that is not dependent on a partic- 
ular clock rate allows the system designer 
freedom to alter the system clock to ob- 
tain peak performance without requiring 
massive custom programming. An impor- 
tant benefit is the relative ease with which 
system designs can be upgraded, because 
a level of uncertainty (will the software 
still work?) has been eliminated. 

An understanding of the principles used 
in writing the timing-independent BIOS 
is a major step toward designing hardware 
and software compatible across a broad 
range of computers. ■ 



222 Inside the IBM PCs • BYTE 1987 Extra Edition 



80386 



SELECT 5 BOOKS 

for only $3. 95 



TRUE 
BASIC 



SESIOUS PttOCK AHHltn 

ibm"pc7xt/at 





1/24P $13.50 



MAXIMUM P ERfOfiHANCE 

LOTUS 1-2-3 

VERSIONS 1.0 AND 1.0 



Membership Benefits • Big Savings. In addition to this introductory 
offer, you keep saving substantially with members' prices of up to 50% off the 
publishers' prices. • Bonus Books. Starting immediately, you will be eligible for 
our Bonus Book Plan, with savings of up to 80% off publishers' prices. • Club 
News Bulletins. 1 4 times per year you will receive the Book Club News, describ- 
ing all the current selections— mains, alternates, extras— plus bonus offers and 
special sales, with hundreds of titles to choose from. • Automatic Order. If you 
want the Main Selection, do nothing and it will be sent to you automatically. If 
you prefer another selection, or no book at all, simply indicate your choice on the 
reply form provided. As a member, you agree to purchase at least 3 books within 
the next 12 months and may resign at any time thereafter. • Ironclad No-Risk 
Guarantee. If not satisfied with your books, return them within 10 days without 
obligation! • Exceptional Quality. All books are quality editions especially 
selected by our Editorial Board. 




1943P $16.95 



2808P $19.95 



PROGRAMMING WfTH 

R 

base 5000 



2666 $28.95 



When it's new and important in business or personal computing, 

The Computer Book Club has the information you need . . . 

at savings of up to 50% off publishers' prices! 



SERIOUS 

PROGRAMMING!^ 



2650P $14.95 



COMPUTER 

PERIPHERALS 




P.O. Box 80, Blue Ridge Summit, PA 17214 

Please accept my membership in The Computer Book Club® and send the 5 
volumes listed below, billing me $3.95 plus shipping and handling charges. If not 
satisfied, I may return the books within ten days without obligation and have my 
membership canceled. I agree to purchase at least 3 books at regular Club prices 
(plus shipping/handling) during the next 12 months, and may resign any time 
thereafter. 



Name 

Address. 
City 



State/Zip . 



.Phone. 



© 1987 THE COMPUTER BOOK CLUB® 
Blue Ridge Summit. PA 17214 

Circle 52 on Reader Service Card 



Valid for new members only. Foreign applicants will receive special ordering instructions. Canada 
must remit in U.S. currency. This order subject to acceptance by The Computer Book Club® 

BY-1087 




2857 $25.95 2627P 

(Publishers' Prices Shown) 

All books are hardcover 
unless other-wise indicated. 



BYTE 1987 Extra Edition • Inside the IBM PCs 223 




* ^5* 



Put the World at 
Your Fingertips! 

PC-GLOBE. ..the remarkable new 
program that gives you an 
instant profile of 177 

different countries 



w 



Registered owners will be entitled to 
special pricing on annual updates. 





■M, 



Put the World at Your Fingertips! 




GLOBE) 



Enhance Educational Programs 




Obtain Instant Data For Marketing 



Plan Vacations or Business Trips 



Packed with up-to-the-minute data, hundreds of maps and full -color graphics, 
PC-GLOBE literally puts an atlas and encyclopedia on your computer * 

PC-GLOBE has two fully integrated sections— Maps and Database. 
At the touch of a key... 

• Pinpoint any of 177 different countries. The selected country will be highlighted for ir 
identification. 

• Access maps of any of six different continents. On each map, locate countries or display the following 
overlays: 1) Major Cities, 2) Elevation and 3) Population Density. 

• Access ^individual maps for any of the 177 countries. Overlays display Major Cities and Elevation. 

The Database portion of the program offers the following information for each of 
the 172jcountries — 

• National population statistics & growth trends 

• Major cities with their populations * GDP trends 

• Time zones * Balance of trade statistics 

• Health statistics * World data & commodity rankings 

• Age distribution • Literacy rate 

• Political parties * Percent urbanization 

• Government leaders * Language & culture 

• Major industries & agricultural products • Tourist attractions & climate 

• Imports & exports * And much more! 



The Database may be accessed from any point in the program, at any time. 
This portion of PC-GLOBE is specifically designed to give you the vital facts 
you need in the simplest, most practical format The data appears in a colorful 
array of charts, tables and informational capsules, reinforced with useful and 
authoritative commentary. 

All screen displays can be printed out or modified by any number of screen- 
capture programs. In this way, PC-GLOBE can be used to prepare customized 
country reports and presentations. 

PC-GLOBE contains six diskettes and runs on IBM®- PC /XT/ AT or compatible computers 
with two floppy drives or one floppy drive and a hard disk. The program works with DOS 
versions 2.0 or later and requires 256K RAM and a color graphics board. 



CALL 1-800-255-2789 

(orders only) 

or contact your local dealer. For 
additional information, contact CSI. 
Circle 258 on Reader Service Card (Dealers: 259) 



Com well Systems, Inc. 
P.O. Box 41852 
Phoenix, AZ 85080 
(602) 869-0412 



H 



INSIDE THE IBM PCs 



Three construction examples 
that add a port to your IBM PC 's bus 



Three Bus Interface Designs 

for the PC 

James R. Drummond 



In this article I '11 take a look at 
how to interface three popular 
parallel-interface chips to al- 
most any IBM PC bus. Using 
the extra I/O ports these chips 
provide, you can add timing 
capabilities, A/D converters, 
motor drives, and many types 
of sensors to your IBM PC to 
expand its capabilities far be- 
yond what its designers 
planned. I'll demonstrate one 
simple interface using the In- 
tel 8255 chip, and two more 
complex interfaces using the 
Motorola MC6821 and the 
National Semiconductor 
NSC810A chips. The latter 
two examples take advantage 
of programmable-array-logic 
technology to reduce the inter- 
face design's complexity to a 
few chips. 

I won't cover the character- 
istics of each chip except inso- 
far as they refer to the bus in- 
terface. Each chip has its own 
advantages, but all the chips 
have two 8-bit parallel ports in 
common. All the interfaces 
described are designed to be 
capable of 1 6-bit access where 
possible. I have not provided 
explicit layout diagrams, but 
you should have enough infor- 
mation to adapt these designs 
to your specific needs . For de- 
tailed information concerning the capa- 
bilities of these chips and their registers, 
consult the manufacturer's literature. 

The IBM PC Bus 

The IBM PC bus consists of 62 connec- 
tions, as shown in figure 1 . Many of the 
pins are used for direct memory access 
and interrupt handling, and I won't con- 
sider them here. I'm concerned with the 
address lines (AO to A 19), data lines (DO 
to D7), and control lines AEN, RESET 

Illustration: Mary Ann Smith © 1987 




DRY (which I'll call RESET for the re- 
mainder of this article), CLK, I/O CH 
RDY, I/O read (IOR), and I/O write 
(IOW). Power is available for peripherals 
on lines Bl and B31 (ground) and on 
lines B3 and B29 ( + 5 volts). All the bus 
lines are TTL-compatible. 

Figure 2 shows some of the signals in- 
volved in standard IBM PC I/O cycles. It 
shows a word I/O cycle, which uses two 
I/O cycles to address successive I/O 
bytes. This simplifies programming by 



avoiding "byte shuffling" 
(i.e., the 2 bytes are read in 
the proper order— least-sig- 
nificant byte in the lowest 
address, most significant byte 
in the higher address for word 
organization). The signals on 
address lines AO through A9 
determine which card is se- 
lected on the bus. The small 
interval between the two cy- 
cles indicates that data 
throughput can be high, but 
not all peripheral chips can 
handle two accesses so close 
together in time. 

The clock signal is a 2-to-l 
mark space ratio with a low 
time of 140 nanoseconds and a 
high of 70 ns. A single byte 
I/O access requires five clock 
cycles and completes on the 
first T4 cycle. Therefore, byte 
I/O can complete in a mini- 
mum of 1.02 microseconds at 
4.77 megahertz. "Turbo" 
IBM PC-compatibles can 
have a faster timing. 

You can extend the PC's 
read/write cycle using the I/O 
CH RDY line. When a slow 
card is selected, it activates 
the tristate buffer attached to 
the I/O CH RDY line, and the 
PC senses this level on the 
leading edge of the T2 cycle. 
If I/O CH RDY is low (device 
not ready), the PC automatically inserts 
one wait state into the I/O cycle, and the 
line is sensed again. Figure 2 shows the 
PC adding one extra clock cycle (TW 1 ) in 
the first I/O cycle, since I/O CH RDY is 

continued 

James R. Drummond (University of To- 
ronto, McLennan Labs, 60 St. George, 
Toronto M55 1A7, Canada) teaches elec- 
tronics and microcomputer interfacing 
for physicists. 



BYTE 1987 Extra Edition • Inside the IBM PCs 225 



BUS INTERFACE DESIGNS 



REAR PANEL 



SIGNAL NAME 

GND - 

+ RESET DRV - 

+ 5V - 

+ IRQ2 - 

-5VDC - 

+ DRQ2 - 

■-12V - 

-CARD SLCTD - 

+ 12V - 

GND - 

-MEMW- 

-MEMR- 

-IOW - 

-IOR- 

-DACK3- 

+DRQ3 - 

-DACK1 - 

+DRQ1 ■ 

-DACKO- 

CLOCK- 

+ IRQ7 ■ 

+ IRQ6- 

+ IRQ5 ■ 

+ IRQ4 ■ 

+IRQ3- 

-DACK2 - 

+ T/C - 

+ ALE • 

+5V- 

+OSC ■ 

GND- 



Bl 

B2 

B3 

B4 

B5 

B6 

B7 

B8 

B9 

BIO 

Bll 

B12 

B13 

B14 

B15 

B16 

B17 

B18 

B19 

B20 

B21 

B22 

B23 

B24 

B25 

B26 

B27 

B28 

B29 

B30 

B31 



Al 

A2 

A3 

A4 

A5 

A6 

A7 

A8 

A9 

AlO 

All 

A12 

A13 

A14 

A15 

A16 

A17 

A18 

A19 

A 20 

A21 

A22 

A 23 

A24 

A25 

A 26 

A27 

A 28 

A29 

A 30 

A31 



SIGNAL NAME 

- -I/O CH CK 
• +D7 
-+D6 
-+D5 

■ +D4 
■+D3 

■ +D2 
•+01 
•+D0 

■+I/0 CH RDY 

■ +AEN 
•+A19 

■ +A18 
•+A17 
-+A16 
•+A15 

■ + A14 
-+A13 
-+A12 
•+A11 
-+A10 

■ +A9 

- +A8 

■ +A7 
-+A6 
■+A5 

■ +A4 
-+A3 
-+A2 
-+A1 
-+A0 



Figure 1: IBM PC bus connections. All signals are TTL-compatible. (Figure 
courtesy of IBM Corp.) 



low at the end of the T2 cycle. Note that 
when the card tristates the driver for the 
I/O CH RDY line (shown in the diagram 
with the level at the halfway point), the 
line is actually pulled up to the ready 
state. Delaying the I/O cycle by more 
than a few microseconds will cause prob- 
lems with the memory refresh system. 
The designs supplied here normally 
won't require more than a few extra clock 
cycles to operate properly. 

The IBM PC has a most annoying re- 
striction. Although the 8088 processor 
can use all 15 address lines to access 64K 
bytes of I/O space, only 10 address lines 
(AO to A9) are actually decoded for I/O, 
resulting in a 1024-byte I/O space. IBM 
assigns standard I/O locations to many 
devices in this lK-byte region, and these 
assignments are shown in table 1 . At first 
glance, it might appear that there is free 
space in the "prototype card" region, 
which is addresses 300 through 3 IF hexa- 
decimal. However, many third-party 
vendors use the prototype-card region for 
peripheral boards, so you might have to 
look elsewhere for I/O space. If you don't 
have many cards installed in your PC, 
one solution is to use the unoccupied as- 
signed I/O locations. I've allowed for this 
situation by designing these circuits with 
switches to set the address so that you can 
move them to any unused region of the 
I/O space. 

Unfortunately, 1024 I/O locations 
aren't enough when you have many in- 
stalled cards splitting up the assigned I/O 
space, and some of the peripheral chips 
you might want to use have up to 26 regis- 
ters each. Interfacing one such chip is 
usually easy, but when a design requires 
eight of these chips, the solution can get 
complicated. You can circumvent the 
problem by using the remaining six ad- 



SIGNAL NAME 



Tl 1 T2 I T3 I TW 1 I TW I T4 | Tl | T2 | T3 I TW | T4 | Tl 



SOURCE 



i n n n n n n n rL_rL_rL_n_ ■* 



ADDRESS X 



L0 ADDRESS 



HI ADDRESS 



_X_pc 



1 



>/0 CH RDY £W^\ ® ~ 



DATA (WRITE) 



mww 



DATA FROM PC 



J^^C 



DATA FROM PC 



D^> 



DATACEAO, ^^^^^^^^^^ LTJB ^^^^^^^^^^E)^^ I/O 



Figure 2: Timing signals for an IBM PC word I/O cycle. The CLK interval is 210 ns. Note that the word cycle is actually two 
byte I/O cycles and that I/O CHRDYis used to add an extra clock cycle to the first I/O cycle. 



226 Inside the IBM PCs • BYTE 1987 Extra Edition 



BUS INTERFACE DESIGNS 



dress lines, regardless of what the IBM 
PC does. For example, the 26 registers of 
the peripheral chip mentioned earlier can 
be decoded with the least-significant 
address lines (AO through A5), the card 
address decoded with the next address 
lines (A6 through A9), and the chip se- 
lected using the upper six address lines 
(A10 through A15). 

This hardware trickery might seem 
awkward, but you can make it invisible to 
the programmer if the various addressing 
elements used by the software are defined 
symbolically. Thus, to access timer 1 on 
the fifth NSC810A chip on a card at ad- 
dress 300 hexadecimal using Turbo Pas- 
cal, you can define: 

const 

CARD = $300; 
TIMER_1 = $012; 
NSC_5 = $2400; 

To have the program read a 16-bit value, 
you write: 

timer_value := 

Portw [CARD or NSC_5 or TIMER...1] ; 

or something similar. The actual values 
of the symbols are irrelevant to the 
programmer. 

Software Considerations 

One of the overlooked difficulties of in- 
terface design is potential problems with 
software. For the IBM PC, the Intel 8088 
processor uses special instructions (IN, 
OUT) to address the I/O space. Perform- 
ing I/O won't be easy unless the language 
you use has a mechanism to access these 
instructions. For example, Turbo Pascal 
has a complete set of built-in I/O instruc- 
tions using the two "arrays" Port- 
[0..$3FF] and Portw [0..$3FF], which 
access the I/O locations as bytes and 
words, respectively. Thus, to read a byte 
from I/O location 300h, the instruction is 
k := Port[$300];, with equally simple 
instructions for writing to a port. Some 
other languages have similar constructs, 
but some do not. You should check out a 
prospective language carefully before 
purchasing it for I/O programming. 

Conversely, software that can perform 
I/O can be an aid to debugging hardware 
problems. I have written three programs 
that test designs using the 8255, MC- 
6821, and NCS810A, respectively. The 
programs are written in Turbo Pascal and 
simply write and read a word from an I/O 
port. This might not seem like much, but 
it can help you track down a lot of prob- 
lems due to miswired address or data 
lines. [Editor's note: T8255.PAS, 
T682LPAS, and T810.PAS are hardware 
test programs written in Turbo Pascal. 



Table 1: The assigned I/O locations in the IBM PC I/O space. (Table courtesy 


of IBM Corp.) 




Hex address 


Use 


range 




000-00F 


DMA chip 8237A-5 


020-021 


Interrupt 8259 A 


040-043 


Timer 8253-5 


060-063 


PPI 8255A-5 


080-083 


DMA page registers 


0AX 


NMI mask register 


OCX 


Reserved 


0EX 


Reserved 


200-20F 


Game control 


210-217 


Expansion unit 


220-24F 


Reserved 


278-27F 


Reserved 


2F0-2F7 


Reserved 


2F8-2FF 


Asynchronous communications (secondary) 


300-31 F 


Prototype card 


320-32F 


Fixed disk 


378-37F 


Printer 


380-38C* 


SDLC communications 


380-389* 


Binary synchronous communications (secondary) 


3A0-3A9 


Binary synchronous communications (primary) 


3B0-3BF 


IBM monochrome display/printer 


3C0-3CF 


Reserved 


3D0-3DF 


Color/graphics 


3E0-3E7 


Reserved 


3F0-3F7 


Disk 


3F8-3FF 


Asynchronous communications (primary) 


* Si nee addresses 


overlap, you cannot use both communications options at once. 



PAL682I.LSTand PAL8I0.LST are PAL 
programmer equations. These files are 
available on disk, in print, and on BIX; 
see the insert card following page 208 for 
details. They are also available on 
BYTEnet; seepage 4.] 

Hardware Design Considerations 

Because the IBM PC bus can have many 
cards attached to it, you must drive it 
carefully, and each card must not load it 
excessively. In practice, this requires that 
you use no more than about two low- 
power Schottky TTL (LSTTL) inputs per 
slot and "bus buffer" chips to drive the 
data lines. A tristate LSTTL output can 
drive the I/O CH RDY line. All the inter- 
faces described here use the 74LS245 for 
the bus buffers. Its logical pin-out makes 
the wiring easier. 

The interface card must decode its own 
address, which you achieve by using a 
digital comparator that compares the ad- 
dress on the bus to that of the card. The 
card address is determined by the settings 
on a DIP switch. The 74LS682 is used for 
the comparator, since it has built-in pull- 
up resistors on one set of the inputs. 
Thus, to compare the corresponding ad- 
dress bit to a 1 , the pin is left open, and to 
compare to a 0, the pin is grounded, re- 
quiring only a single-pole DIP switch. 



The AEN line should also be compared to 
a on the comparator. This will elimi- 
nate the possibility of spurious address 
decoding during a bus DMA cycle, when 
AEN is high (1). 

I built all these cards on standard wire- 
wrap cards using precut wire. I have 
found this technique quick and reliable, 
although the board does not look pretty 
if it is extremely dense. I also solder 
0.1 microfarad decoupling capacitors 
across the power supply and ground pin 
of every IC socket on the board, which 
reduces power-supply noise consid- 
erably. 

Many IBM PC clones run with a faster 
clock than the IBM PC, so a card design 
that works well on a standard 4.77-MHz 
IBM PC might not run at all on an 8-MHz 
PC. Some "turbo" PCs also alter the bus 
timing in various ways to make it look 
more like a standard PC bus. Hence, a 
large number of possible bus timings ex- 
ist that you can't anticipate in your de- 
sign. The best solution is to use high- 
speed chips wherever possible. Using fast 
chips, I've run most of these designs on 
many PC variants, but I can't try all of 
them. 

Now that I've covered the basics of the 
PC bus signals and some of the support- 

continued 



BYTE 1987 Extra Edition • Inside the IBM PCs 227 



Circle 93 on Reader Service Card 




Users can add new functions to 
LOTUS, WORDSTAR, and dBASE 



Move into 



TM 



THE WEINER SHELL 

Get Room to Grow 

• Users can add their own functions to C, BASIC, PASCAL, LOTUS, 
WORDSTAR, dBASE & most other programs on the market. 

• Custom-design memory-resident windows, menus, screens & 
utilities. 

• Easily set up your own context-sensitive help screens and light-bar 
menus. 

• Run Shell programs without leaving your application. 

• Execute Shell programs automatically, at timed intervals, or with 
interrupt-driven serial conditions. 

• 60K memory required. Supports up to 8M bytes of Lotus-Intel 
memory. 

• Customization available. 

• $199 (includes limited no-royalty agreement). 

THE FIRST MEMORY-RESIDENT 
PROGRAMMING LANGUAGE 




miCQopQOducts 



® 



P.O. Box 10087/Silver Spring, MD 20904/(301) 384-6868 




BUS INTERFACE DESIGNS 



software and hardware considerations, I 
want to look at the interface chips and see 
how you can connect them to a PC bus. 

The Intel 8255 

The Intel 8255 programmable peripheral 
interface (PPI) is a fairly simple parallel- 
port chip. Its main advantages are a simple 
interface and three bidirectional 8-bit 
ports. Figure 3 shows the chip pin-outs, 
and table 2 lists the register assignments. 
The values you place in the 8255's control 
register determine which groups of lines 
are inputs and which are outputs. For more 
details of the operation of the various regis- 
ters, consult the Intel data books. 

You would expect that an Intel chip 
would interface easily on the IBM PC bus, 
which is effectively the bus for an Intel 
8088 processor in "maximum mode." 
This is indeed the case: The various control 
lines go straight onto the pins of the 8255, 



Table 2: The register map for an 
Intel 8255. Ports A and B cannot 
be accessed as a word because of 
the 8255 's slow cycle time. 



A1 



1 

1 



A0 Register Access 



Port A 
PortB 
PortC 
Control 



R/W 

R/W 

R/W 

W 













\J 




PA3[ 


1 


40 


]PA4 


PA2[ 


2 


39 


]PA5 


PA1 [ 


3 


38 


]PA6 ~ 


PA0[ 


4 8255A 37 


] PA7 


AO[ 


5 


36 


]WR 


CS[ 


6 


35 


] RESET 


GND[ 


7 


34 


] DO 


Al[ 


8 


33 


]D1 


A0[ 


9 


32 


]D2 


PC7[ 


10 


31 


]D3 


PC6[ 


n 


30 


]D4 


PC5 [ 


12 


29 


]05 


PC4 [ 


13 


28 


] D6 


PC0[ 


14 


27 


]D7 


pci[ 


15 


26 


] v cc 


PC2[ 


16 


25 


]PB7 


PC3[ 


1? 


24 


] p B6 


PB0[ 


18 


23 


[JPB5 


PB1[ 


19 


22 


] PB4 


PB2[ 


20 


21 


]PB3 





Figure 3: Pin-outs for the Intel 8255. 



228 Inside the IBM PCs • BYTE 1987 Extra Edition Circle 221 on Reader Service Card 



Circle 235 on Reader Service Card (Dealers: 236) 



BUS INTERFACE DESIGNS 



as shown in figure 4. This circuit uses a 
minimal IBM PC interface consisting of an 
8255 chip, a 74LS682 used as the address 
decoder, and a 74LS245 used as a bus 
buffer. You don't need to delay the I/O 
cycle, so you don't use the I/O CH RDY 
line. Note that, although the bus buffer is 
activated by the board select signal (BS) 
from the decoder, the bus buffer is ar- 
ranged to direct data onto the ca rd unless a 
read cycle is in progress (IOR low). This 
prevents the possibility of a bus collision 
with the output from another card, which 
can occur when the 74LS245 decodes a 
bus transient as its board address and acti- 
vates BS. 

There is a slight deficiency of the inter- 
face: since it does not use address line 
A2, eight I/O locations are decoded, even 
though the 8255 has only four registers. 
The effects of this address ambiguity are 
small: a slight loss of I/O space and du- 



plication of the registers in the upper 4 
bytes of the decoded space. 

If you would like more than one 8255 
on an interface card, you must do some 
additional address decoding using a 
74LS138 decoder. You can take the addi- 
tional address lines required from either 
just above the register selects (address 
line A2 and up), as shown in figure 5, or 
from above the PC's normal I/O decod- 
ing area (address line A10 and up), as 
shown in figure 6. In the former case, the 
I/O space occupied by the card expands 
from eight to 32 addresses; in the latter 
case, it doesn't. The availability of I/O 
space (or the lack of it) will determine 
which design option to use. 

The one disadvantage of the 8255 is 
that you cannot use the word addressing 
as discussed for the PC bus. Why? The 
8255 requires a minimum of 850 ns be- 

continued 



PC 


BUS 


PIN 


FUNCT. 


A 22 


A9 


A 23 


A 8 


A 24 


A7 


A25 


A6 


A26 


A5 


A27 


A4 


A28 


A3 


All 


AEN 


B2 


RESET 


B13 


iow 


B14 


IOR 



A9 


1 DO 


A8 


Dl 


A7 


D2 


A6 


D3 


A5 


04 


A4 


D5 


A3 


D6 


A2 


D7 


A30 


Al 


A31 


AO 



15 



13 



Vcc 

I 20 



DIP SWITCHES 



74LS682 



X 






L^J 



18 



16 



-or o- 



12 



19 



Vcc 



m 



BS 



Vcc 



20 



35 



36 



19 



DIR 



EN 



74LS245 



x 



18 


34 


17 


33 


16 


32 


15 


31 


14 


30 


13 


29 


12 


28 


11 


27 



cs 

RESET 

WR 

RD 



8255 



DO 
Dl 
D2 
D3 
D4 
D5 
D6 
D7 



T 



Figure 4: A minimal interface circuit using the 8255. The 8255 response time is 
sufficient, so you don 't need to use I/O CH RDY to extend PC I/O cycles. You do not 
use address line A2. 




WHAT'S NEW FOR 
THE IBM PS/2 



Wire wrap VECT0RB0RD® 



High speed prototyping boards 



for manual or semi-automatic 



assembly. Solderable versions 



also. Both with impedance 



matched extenders. 






USES SMD CAPS 
AND SOCKET PINS 

• Opposing v/g planes 
reduce crosstalk. 
Connectors, brackets, 
and accessories. 

» Available for all 
PS/2 Models and 
IBM-PC, XI & AT 



Call or send for brochure. 



VECTOR ELECTRONIC COMPANY 
12460 Gladstone Avenue 
Sylmar, CA 91342 
818/365-9661 FAX 818/365-5718 

800/426-4652 in CA 
800/423-5659 Outside CA 124 



B Y T E 1987 Extra Edition • Inside the IBM PCs 229 



Circle 114 on Reader Service Card 



PowerStation220 



A Complete VT220 Work Station 
Upgrade for the IBM PC/XT/AT 

and PS/2 



.*J& 



5S- 



"PS220™now 
supports the 
advanced 
features of the 
PS/2 and 
provides true: 
132 columns 
Doublehigh/wide 
Smooth scrolling 



PowerStation ™220 $289 

VT220 style keyboard and ZSTEM VT220 Emulation Software. 
ZSTEMpc™-VT220 Emulator Emulation Software only. $150 
All the features of ZSTEMpc-VT100 plus 8-bit mode, down- 
loadable fonts, user defined keys, full national/multi-national 
modes. Extended macros/script language. True 132 columns 
on enhanced EGAs, standard VGAs, and standard EGAs using 
the EGAmate option. 43 line support on EGAs. Enhanced key- 
board support. Ungermann Bass Net/One support. 
EGAmate™ daughterboard option for 132 columns on most 
standard EGA adaptors. $39 

PS220/2 Keyboard adaptor cable for PS/2 systems. $29 



ZSTEMpc™-4014 Emulator $99 

Use with ZSTEMpc-VTIOO. VT220, or stand- 
alone. Interactive zoom and pan. Save/recall 
images from disk. Keypad, mouse, digitizer, 
printer, plotter, and TIFF support. 4100 color 
and line style color mapping. 640 x 400 and 
640 x 480 on many adaptor/monitors. 

ZSTEMpc^-VTlOO Emulator $99 

High performance COLOR VT100. True double 
high/wide, smooth scrolling. ISO and attribute 
mapped color. XMODEM and KERMIT, soft- 
key/MACROS, DOS access. 



KEA Systems Ltd. 

#412 - 2150 West Broadway, Vancouver, B.C. Canada V6K 4L9 

SUPPORT (604) 732-7411 TELEX 04-352848 VCR FAX (604) 732-0715 

Order Desk (800) 663-8702 Toll Free 

30 day money back guarantee AMEX/MC/VISA 




NRI Prepares You At Home For Today's Hottest New Career 



Master digital electronics servicing 
as you build your own 
IBM-compatible 
computer! 

A brand new course for an exciting new 
field. . .servicing computer peripherals (disk 
drives, printers, display terminals, modems, 
etc.) and the latest digital equipment found 
in industry today. Job opportunities for the 
trained digital technician have never been 
greater. It .takes skilled personnel to keep 
today's digitally automated production lines 
and manufacturing equipment rolling. NRI trains you 
to be a high-demand digital technician or prepares you 
for your own independent service business . 

¥)U learn by doing ... the NRI way 

As you learn, you get practical hands-on experience 
building yourown 256K IBM-compatible computer and 
disk drive. You also build, and learn to use and service, your 
own triggered-sweep oscilloscope, digital logic probe, and 
digital multimeter. .. instruments used by today's 
electronics professionals. 

Diagnostic Software Makes Your Computer 
a Dedicated Digital Testing Device 

With the exclusive diagnostic software included in your 
course, your computer actually becomes your most impor- 
tant piece of digital test equipment. You use your computer 
to troubleshoot video displays and terminals, printers, disk 
drives, and more. Plusyou learn to apply your knowledge to 
the diagnosis and repairof any digital equipment you en- 
counter in your servicing career. 

Send Today for FREE Catalog 

Send the coupon today for NRI's free, 100-page catalog 
with all the details about starting your career in Digital 



Electronics Servicing, plus facts about NRI training in other 
high-pay, high-growth electronics career fields. If the 
coupon is missing, write to us at NRI School of Electronics, 
McGraw-Hill Continuing Education Center, 3939 
Wisconsin Avenue, Washington, DC 20016. 



Send Coupon Today for Free Catalog! 



School of Electronics 

McGraw-Hill Continuing Education Center 
3939 Wisconsin Ave. , Washington, D.C. 20016 



(Please Print) 



Age 



Address 



City /State /Zip 



169-107 



z\ 



BUS INTERFACE DESIGNS 



tween successive I/O cycles, and the IBM 
PC allows 420 ns— far too little. Figure 7 
shows how to avoid this restriction: The 
8255s are used in pairs, with one chip 
corresponding to the high byte and the 
other chip corresponding to the low byte 
of the address. Table 3 shows the register 
map for word I/O decoding with this 
circuit. 

You don't need to buffer the bus lines, 
even if many 8255s are on the card, be- 
cause the 8255 represents an almost neg- 
ligible load to the system bus compared to 
an LSTTL load. On a normal IBM PC, a 
standard 8255 will be adequate to meet 
the timing requirements, but a PC with a 
faster clock requires an 8255-5. 

The Motorola MC6821 

The Motorola MC6821 peripheral inter- 
face adapter (PIA) is a venerable chip that 
is still useful and inexpensive. It is a 
fairly simple parallel-port chip with two 
bidirectional 8-bit ports. The pin-outs for 
this chip are shown in figure 8. Note the 
three chip select lines: CS0, CS1, and 
CS2. By using CS0 as the master select 
line and taking an add ress line to CS1 on 
one 6821 and to CS2 on another 6821, 
you can address the two chips without ad- 
ditional circuitry. 

Table 4 shows the register map for the 
MC6821. Again, you should consult the 
manufacturer's data books for detailed 
information on using and programming 
this chip. If you reverse the sense of the 
RS0 and RSI register select lines as 
shown in table 5, the two I/O ports occu- 
py successive I/O addresses. This lets 
you use the MC6821 as a 16-bit port on 
the PC bus. 

The disadvantage of the MC6821 is 
that it's designed to work with a continu- 
ous clock signal (E) . You simulate the E 
clock by dividing the IBM PC clock by 4 
with a control PAL, which yields a 1.2- 
MHz E clock. This signal is suitable for a 
6821 A, which can handle a maximum 
clock frequency of 1.5 MHz. For an 8- 
MHz PC, the PAL generates a 2-MHz E 
clock that requires an MC6821B. 

Figure 9 shows the bus timings for an 
MC682 1 read cycle. Because the E clock 
counter is not synchronized to the PC's 
bus cycles, the PC might start an I/O 
cycle at an improper point in an E clock 
cycle. The control PAL achieves synchro- 
nization by using the I/O CH RDY line to 
delay the PC's I/O cycle until an MC6821 
access begins. At this point, the control 
PAL releases I/O CH RDY, and the PC 
I/O cycle is allowed to complete. 

For a read cycle, the data is held on the 
bus by holding the E clock high until the 
end of the PC I/O cycle. For a write cycle, 
the write is completed by releasing the E 

continued 



230 Inside the IBM PCs • BYTE 1987 Extra Edition 



Osborne/ McGraw-Hill's 

Indispensable 

Complete Reference Series 




1-2-3®: The Complete 
Reference 

by Mary Campbell 

Every Lotus® 1-2-3® com- 
mand, function, and proce- 
dure is thoroughly explained 
and demonstrated in "real- 
world" business applications. 
Includes money-saving cou- 
pons for add-on products. 
892 pages. 

$22.95, A Quality Paperback, 

ISBN 0-07-881005-1 



dBASE III PLUS™: The 
Complete Reference 

by Joseph-David Carrabis 

Conveniently organized so 
you can quickly pinpoint all 
dBASE III® and dBASE III 
PLUS™ commands, 
functions, and features. 
768 pages. 

$22.95, A Quality Paperback, 

ISBN 0-07-881012-4 




DOS: The Complete 
Reference 

by Kris Jamsa 

Has all the answers to all 
your questions on DOS 
through version 3.X. This 
essential resource is for 
every PC-DOS and MS- 
DOS® user. 1045 pages. 

$24.95, A Quality Paperback, 

ISBN 0-07-881259-3 




C: The Complete 
Reference 

by Herbert Schildt 

For all C programmers, 
beginners and seasoned 
pros, here's an encyclope- 
dia of C terms, functions, 
codes, and applications. 
Covers C++ and the 
proposed ANSI standard. 
740 pages. 

$24.95, A Quality Paperback, 

ISBN 0-07-881263-1 




AVAILABLE NOW at Fine Book Stores and Computer Stores Everywhere. 

Or Call Our Toil-Free Order Number 800-227-0900 

800-772-2531 (In California) 

Available in Canada through McGraw-Hill Ryerson. Ltd. Phone 416-293-1911 






Osborne McGraw-Hill 

2600 Tenth Street 
Berkeley, California 94710 



Circle 161 on Reader Service Card 



Trademarks: Lotus and 1 -2-3 are registered trademarks of Lotus Development Corp. dBASE is a registered trademark and 
dBASE III PLUS is a trademark of Ashton-Tate. MS-DOS is a registered trademark of Microsoft Corp. 

B Y T E 1987 Extra Edition • Inside the IBM PCs 231 



Circle 154 on Reader Service Card 



J, v i m 




PS/2 



TM 



Compatible Products 

Everything for PS/2 machines 

•WIREWRAP CARDS 
high quality design 
in 6 sizes 

•EXTENDER CARDS 

•BRACKETS 

•DESIGN EXAMPLES 

•TECHNICAL DETAILS 

•ASIC CHIPS 

•PS/2 NEWSLETTER 



•CALL FOR OUR FREE 
CATALOG 




ON TARGET Associates 
1250 Oakmead Parkway #210 
Sunnyvale, CA. 94086-3599 
(408)980-7118 

PS/2 is a registered trademark of IBM Corp. 



BUS INTERFACE DESIGNS 



A22 
A23 
A24 
A25 
A26 



PC BUS 
FUNCT. 

A9 
A8 
A7 
A6 
A5 



A27 
A28 
A29 



AEN 



A4 
A3 
A2 



17 



15 



m 



v C c 

J20 



DIP SWITCHES 



74LS682 



4 



r 



16 



r 



18 






16 



14 



12 



19 



m 



BS 



-** TO 74LS245 



E3 



El 



74LS138 
DECODER 



A2 
Al 
A0 



1 



15 



14 



13 



11 



10 



SO 
SI 
S2 
S3 

S 

S5 
S6 
S7 



8 CHIP SELECTS 
FOR 8255s 



Figure 5: A circuit design that interfaces more than one 8255 to the PC bus. 



PC BUS 



16 



PIN 

A 19 
A 20 
A21 



A22 
A23 
A24 
A25 
A 26 
A 27 
A28 
All 



A12 
All- 
A10 



A9 
A8 
A7 
A6 
A5 
A4 
A3 
AEN 



74LS138 
DECODER 



A2 
Al 
A0 



15 



14 



13 



12 



10 



SO 
Si 

sT 

S3 
S4 
S5 
S6 
S~7 



8 CHIP SELECTS 
FOR 8255s 



m 



T20 



DIP SWITCHES 



15 



74LS682 



IF- 



19 



18 



16 



— or O- 



12 



m 



BS 



*— »-TO 74LS245 



Figure 6: A different way to interface extra 8255s to the PC. 



232 Inside the IBM PCs • BYTE 1987 Extra Edition 




tost What The Doctor Ordered. 

AndThe Lawyer. 

AndTlx Architect... 



The Quantus Turbo AT 

• Monochrome monitor 

• Half-height 40Mb hard drive 

• 80286 running at 6-1 0MHz 

• 1Mb RAM 

• 8 expansion slots 

• Text/graphics card 

• Speaker 

• 1 .2Mb floppy drive 

• 101-key enhanced keyboard 

• 200 watt power supply 

• 3 year limited warranty 



$1495 



COMPLETE 



The Quantus MT386 

• Monochrome monitor 

• Full-height 80Mb hard drive 

• 80386 running at 4.77/6/8/1 0/1 6MHz 

• 2Mb RAM 

• 8 expansion slots 

• Text/graphics card 

• Speaker 

• 1 .2Mb floppy drive 

• 101 -key enhanced keyboard 

• 200 watt power supply 

• 3 year limited warranty 



$2995 



The Quantus Turbo XT 

• Monochrome monitor 

• Half-height 20Mb hard drive 

• 8088 running at 4.77-8MHz 

• 640KRAM v 

• 8 expansion slots 

• Text/graphics card 

• Speaker 

• 360K floppy drive 

• 84-key keyboard 

• 150 watt power supply 

• 2 year limited warranty 



$795 

COMPLETE 




f I t 1 1 1 IL^JLAJf' I II IblJdOOD 



I 1 I [ IT timim 

I I I 1 I I ! t 1 Ig 




miim^t J III! 



\ \ ¥\\ 



■UBNTU5 



Specifications and prices subject to change. 
Circle 199 on Reader Service Card 



Scientific Storage Technology 
238 Central Street 
Hudson, NH 03051 

(800) 356-9001 (603) 886-3220 
(800) 255-01 25 (603) 363-4564 



Circle 103 on Reader Service Card 

ChiWriter 




How are you currently producing your scientific 
documents? Are you using a 'golf bait' style type- 
writer? A regular word processor, hand lettering 
the special symbols? Are you fighting against a 
'what-you-see-is-definiteiy-not-what-you-get' 
system with a special command language? Or are 
you using one of our competitors' overpriced and 
inflexible products? Find out how ChiWriter can 
solve your scientific word processing problems. 





M - 


Cx-tiV 


; 


1 


f- 


2 


dx 


/ziT 


-M 








\ 





6 




H 2 N / 


¥ 


Tf 






From an actual ChiWriter screen display 

Powerful Scientific/Multifont Word 
Processing at a Reasonable Price. 

ChiWriter is a complete word processor, de- 
signed especially for typing scientific and foreign 
language text. Its features include: automatic 
pagination, variable headers and footers, foot- 
notes, two text windows and intuitive formula edit- 
ing commands. Best of all, ChiWriter is completely 
'what-you-see-is-what-you-get.' Even entering 
complicated formulas is easy because the screen 
display corresponds exactly to the printout. 

ChiWriter runs on IBM PC's with CGA graphics, 
one disk drive, 256K memory and Epson/IBM 
Graphics compatible and other 9 pin printers. 
Support disks with drivers and high resolution 
fonts for other graphics boards and printers are 
available. 

'ChiWriter is a nifty product with a price I defy you to beat ' 
and pert ormance I defy you to snub ...I know of several 
$500 programs that will do the job, but for the same money 
you could buy ChiWriter and a vacation. ' 

Phil Wlswell, PC Magazine 



□ ChiWriter Program $79.95 
d Hercules Monographic Support $19.95 

□ EGA Support $19.95 
d Olivetti/AT&T/Toshiba Support $19.95 
d 24 Pin Printer Support $19.95 

□ HP LaserJet Support $49.95 

□ Chemistry Font Set $49.95 

□ International Keyboard Support $19.95 

□ WordPerfect Converter $49.95 

□ Brochure 

□ Shipping & handling $ 

$5 U.S. & Canada, $10 Europe, $15 elsewhere 

Name 

Address 

City. 



.State. 



Country 

Phone ( 

Payment by: 
Card# 



.Zip. 



□ Check □ PO 



□ VISA 
Exp_ 



□ MC 







Horstmann Software Design Corporation 
P.O. Box 4544 
Ann Arbor, Ml 48106, U.S.A. 
(313) 663-4049 

horstmann ^(%W(Mr@ 



BUS INTERFACE DESIGNS 



Table 3: The register map of the two 8255 s in the circuit of figure 7. This circuit 
allows word access , since the two chips can be addressed in word I/O sequence. 



A2 



A1 



A0 



Register 



Access 



Chip #0 Port A 
Chip#1 Port A 
Chip §0 Port B 
Chip#1 PortB 
Chip §0 Port C 
Chip #1 Port C 
Chip #0 control 
Chip #1 control 



R/W 
R/W 
R/W 
R/W 
R/W 
R/W 
W 

w 



Table 4: The register map for the 
Motorola MC6821. 



A1 




1 
1 



A0 Register Access 



Port/DDR A 
Control A 

Port/DDR B 
Control B 



R/W 
R/W 
R/W 
R/W 



Table 5: The register map for the 
Motorola MC6821 with the 
register select signals RSO and 
RSI reversed. The chip can be 
accessed with a word I/O cycle. 



A1 




1 
1 



A0 Register Access 



Port/DDR A 

Port/DDR B 

Control A 

Control B 



R/W 
R/W 
R/W 
R/W 



PC BUS 



PIN 

A22 
A23 
A24 
A25 
A26 



All 



A27 
A28 
A29 
A30 
A 31 



A9 
A8 
A7 
A6 
A5 



AEN- 



A4 
A3 
A2 
Al 
AO 



15 



Vcc 

A 



13 



v C c 
T20 



DIP SWITCHES 



74LS682 



10 



16 







18 






14 



19 



BS 



m 



-**TO 74LS245 



E3 El 
74LS138 

A2 
Al 



AO 



A? 



15 



14 



CSO 
CS1 
CS2 
CS3 
CS4 
CS5 
CS6 
CS7 



) TO 8255 CS(6) 



TO 8255 Al (8) 



TO 8255 AO (9) 



Figure 7: Circuit design lets you access two 8255 chips as a word. 



234 Inside the IBM PCs • BYTE 1987 Extra Edition 




trie logical Connection 




4 



^6ur logical choice for printer & data sharing. 




It's your choice. 

Now you can give 
every PC user in your 
office freedom of choice: 
the choice to send their 
output to any 
printer — 
serial or 
parallel — 
anytime. 

And 
all you 
need is 

The M . 

Logical 
Connection™ Version 3.0 



Instant switching. 

Just "pop-up" the 
memory resident 
switching menu, 
cursor-point to the 
device you want to 
switch to, and press ENTER. 

The Logical Connection handles 
all the print spooling, protocols 
and parallel/serial conversion 
automatically. 

Preset config- 
urations. 

10 Preset 
configura- 
tions give 
multiple 

computers unlimited "switch and 
share" access to printers, plotters 
and modems — and each other. 

Just cursor-point to a graphic 
"picture" of the configuration you 
want and download it with a 
couple of keystrokes, using any 



IBM-PC™ or compatible. If you 
need a custom configuration, you 
can easily modify one of the 
presets — or create your own. 

Why network if you don't 
need to? 

For peripheral sharing 



In April, 1987 PC Magazine 
named The Logical 
Connection ''Editor's Choice 
among all printer sharing 
devices reviewed." Author 
Winn L. Rosch called it 
more than logical — maybe 





applica- 
tions The 
Logical 
Connection can 
outperform a 
LAN, right out 
of the box — at 
a far lower cost. 
The Logical Connection lets 
minicomputers and mainframes 
share peripherals with PCs. Or, 
let many devices share a single 
expensive modem connection. 

And for really big 
applications, you can "daisy- 
chain" up to 45 Logical 

Connection 
boxes 
.<*r — together, 

up to 3/4 
mmm of a mile 

apart. 




An easy choice. 

The Logical Connection is easy 
to set up and easy to use. Best of 
all, it's easy on the pocketbook. For 
price per- 
formance 
and ease 
of use, 
nothing 
else 
even 
comes close. 

So if you're looking for the 
best way to share your valuable 
computers and peripherals, 
there's only one logical choice. 
Get the logical connection 
today. 

For the name of your nearest 
dealer, or to order direct, call 
Fifth Generation Systems at 
1-800-225-2775. 




Fifth Generation 



SYSTEMS, INC. 

Innovative Products Using Today's Technology 

11200 Industriplex Blvd., Baton Rouge, LA 70809 

SALES : 

2691 Richter Ave., Suite 107, Irvine, CA 92714 

(800)225-2775- (714) 553-0111 



The Logical Connection Is a trademark of Fifth Generation Systems. Inc. • IBM-PC Is a trademark of International Business Machines, Inc. 
•This product is In no way associated with or has originated In Fisher Scientific or Allied Corporation. 



Circle 81 on Reader Service Card (Dealers: 82) 



BYTE 1987 Extra Edition • Inside the IBM PCs 235 




AN OLD FRIEND . . . 

A NEW FRIEND... 




The logic probe. Familiar. Trusted. It 
has served you well. Unfortunately, it is 
also slow, limited in the number of points 
it can test simultaneously, and difficult to 
use when debugging today's high speed 
circuits. 

Enter the BitWise logic analyzer, The 
Logic 10/8. New. Capable of sampling 
data at up to 10 Mhz, storing the data in 
high speed memory, and displaying up to 
eight digital waveforms on your computer 
screen simultaneously. Other BitWise 
models boast speeds of up to 100 Mhz and 
can display up to 32 waveforms. 

Logic analyzers have long been essential 
but expensive tools for professional 
designers with big budgets. Now BitWise 
makes a logic analyzer that YOU can 
afford. 



BitWise logic analyzers are available 
in kit form from Knight Electronics: 

KNIGHT ELECTRONICS 
10940 ALDER CIRCLE 
DALLAS, TX 75238 
(214)340-0265 

Circle 35 on Reader Service Card 
for Knight Electronics. 



By using the existing architecture of the 
IBM-PC, BitWise can bring the total 
functionality of a logic analyzer to your 
desk starting at the unheard of price of 
$495. Price includes all hardware, software, 
pods, leads, and documentation. And all of 
our units carry a 30 day, no questions 
asked, money back guarantee. 

Want to know more? Get our free booklet 
entitled "Introduction to Logic Analysis". 
For more information and a demonstration 
disk call: (800) 367-5906. 
In NY, call (5 1 8) 274-0755. 




BITWISE DESIGNS, INC. 
297 RIVER ST. 
SUITE 501 
TROY, NY 12180 
TELEX: 710-110-1708 
FAX: 518-462-9637 

Circle 34 on Reader Service Card 
for Bitwise Designs, Inc. 



BUS INTERFACE DESIGNS 



clock signal before the end of the PC 
cycle. This ensures that the PC does not 
remove the write data before the 6821 has 
latched it. The PAL also enforces a delay 
of two complete cycles of the E clock be- 
tween reading bytes during a word 
access. 

The use of a 1 6R4 PAL greatly simpli- 
fies the operation of this card so that the 
design appears barely more complicated 
than the 8255 design. This illustrates the 
great advantage of using PALs in a circuit 
design wherever possible. The complete 
circuit is shown in figure 10a, and the 
PAL equations are shown in PAL- 
6821.LST. 

By letting the card decode eight byte 
locations, you can use the A2 line as 
shown to decode two MC6821 chips. If 
you need more than two 6821s, a 74LS- 
138 decoder is necessary, as in the 8255 
card design. Figure 10b shows how this 
decoder is used in a design that can ad- 
dress up to eight MC6821s. 

The National NSC810A 

The NSC810A is the most complex chip 
I've considered so far. It has one 6-bit 
and two 8-bit bidirectional ports, two 16- 
bit multimode timer/counters, and 128 
bytes of RAM. Although you can't access 
the RAM with this design, you can pro- 
gram the I/O ports for several access 
modes, including individual bit set and 
reset. 
To minimize the number of pins on the 

continued 













W 






Vss[ 


i • 


40 


]CA1 


PAO [ 


2 


39 


]CA2 


PA1 [ 




38 


]Trqa 


PA2 [ 


4 MC6821 


37 


]|RQB 


PA 3 [ 


5 


36 


] RS0 


PA 4 [ 


6 


35 


]RS1 


PA 5 [ 


7 


34 


J RESET 


PA6 [ 


8 


33 


]D0 


PA 7 [ 


9 


32 


]D1 


PB0 [ 


10 


31 


]D2 


PB1 [ 


n 


30 


JD3 


PB2 [ 


12 


29 


]D4 


PB3 [ 


13 


28 


]D5 


PB4 [ 


14 


27 


]D6 


PB5 [ 


15 


26 


]D7 


PB6 [ 


16 


25 


]E 


PB7 [ 


17 


24 


]CS1 


OBI [ 


18 


23 


]CS2 


CB2 [ 


19 


22 


]cso 


v C c [ 


20 


21 


]R/W 


Figure 8: Pin-outs for 
MC6821. 


the Motorola 



236 Inside the IBM PCs • B Y T E 1987 Extra Edition 



WHAT DO YOUR MARKETS 
REALLY LOOK LIKE? 



Go ahead, take a good 
look. What are the growth 
markets for your product 
lines? How will new technol- 
ogies affect your current mar- 
kets? Are imports impacting 
your sales? 

Now try to reconcile con- 
flicting estimates from field 
and corporate sources. Do 
a preliminary sales forecast . . . 
make a quarterly or annual 
projection. Simple? Not quite. 

SHARPEN YOUR 
MARKETING VISION 

If your marketing vision's 
getting fuzzy, take a look at 
MARKET SCAN from Data 
Resources. It will sharpen your plan- 
ning, help you anticipate change, and 
better manage corporate assets. 

MARKET SCAN Gives You... 

Easy manipulation of data, with keyword 
search capability. 

Full range of regression analysis, including 
context-sensitive interpretation of results. 

Also... 

Support and consultation available from 
Data Resources. 
Customized data reflecting your 
sales territories can be obtained on 
special order. 

Put MARKET SCAN on your PC 
and get full historic and projected 
sales data on each of 316 industries 




and the markets they serve. Easy- 
to-use analytic software lets you see 
where tomorrow's profits lie. Full sup- 
port from Data Resources completes 
the package. 

PLAN YOUR BUSINESS 

THE WAY YOU 

DO BUSINESS 

MARKET SCAN incorporates 
the economic impact of key factors 
affecting your business— govern- 
ment spending, imports, exports, 
and interest rates. The result? 
MARKET SCAN lets you plan your 
business the way you do business. 
Estimate potential sales to each 



of your customer markets . . . 
evaluate new markets ... re- 
allocate resources... plan 
production and manage 
inventory. When you're fin- 
ished, your data will be ready 
for immediate display— or 
for use with Lotus 1-2-3. 

GET BUSINESS INFOR- 
MATION THAT COUNTS 

Four quarterly data up- 
dates keep MARKET SCAN 
current. Also included is Data 
Resources' Quarterly Industry 
Outlook for an in-depth look 
behind the numbers contained 
in MARKET SCAN. 
Most of all you'll benefit 
from access to the same exclusive in- 
formation used by leading companies 
and governments worldwide. They 
rely on Data Resources' staff of over 
600 economics and information pro- 
fessionals for business information 
that counts. 

The price for this valuable 
assistance? Far less than you imag- 
ine. For what you'd pay a staff analyst 
for a month, you can hire MARKET 
SCAN for a year. 

CALL (617) 860-6337 

Or fill out and mail the coupon 
below. Get MARKET SCAN and see 
what your markets really look like. 



YOU'LL WANT MARKET SCAN! 



Mail this coupon or call MARKET SCAN 
direct at (617) 860 . 6337 

| | Send me a free demonstration disk of 
MARKET SCAN for my IBM PC/XT or AT. 

| | Have a Data Resources representative 
call me. The best time is 



Name_ 



. Title _ 



Company _ 
Address _ 
City 



. Telephone ( 



.State. 



-Zip- 



Mail to: MARKET SCAN, Data Resources, 24 Hartwell Ave., Lexington, MA 02173 



Lotus and 1-2-3 are registered trademarks o f Lotus Development Corp. IBM and AT are registered 
trademarks and PC/XT is a trademark of International Business Machines Corp. 



Data Resources R1L 



Circle 265 on Reader Service Card 



BYTE 1987 Extra Edition 



Inside the IBM PCs 237 



BUS INTERFACE DESIGNS 



chip, the data bus pins and register select early in the I/O cycle. The disadvantage contiguous space are used in the I/O 

pins are multiplexed, keeping the pin of this technique is that an I/O cycle re- map, but three of the addresses are not 

count to 40, as shown in figure 11. An quires more control signals. used. The timer ports must be accessed 

address latch enable signal (ALE) is used The NSC810A uses 23 registers, as as low-address byte, high-address byte, 

to latch the register address onto the chip shown in table 6. Note that 26 bytes of continued 



SIGNAL NAME SOURCE 

Tl I T2 I T3 I TW I TW I TW I TW | TW I T4 | Tl I T2 I T3 I TW I TW | TW | TW | TW | TW | T4 | Tl I T2 I 13 I 

clk J1JLJ1JT_JLJLJ1J1JT_JLJ^^ PC 

: I 1 I 



I OR 



SEL 



I 



PC 



1/0 



I/O CH RDY • 



j 1 T 



i i i r 



t r 



cso 



t i i r 

t i 



i 



I/O 



DATA ^^^^^{ TO PC ^ ^\\\^^^^^ TO PC ^\^\W .,0 



Figure 9: Timing signals for an MC6821 word I/O read cycle. I/O CH RDY is used to synchronize the MC6821 to the PC I/O 
cycle. The E clock is held high to hold data on the bus until the PC finishes accessing it. 



VERSATILITY 

AND TWICE THE CAPACITY 




The PERSTOR 200 Series Advanced RLL Controllers 
double the storage capacity of your hard disk drive- 
almost any disk drive in almost any system- 
so you can extend the life of your drive. 
We give you what the other guys don't- 
more versatility and greater capacity. 



Drives Supported 

The PERSTOR 200 Series Controllers 
work with your CDC*, Maxtor*, Mini- 
scribe*, Newbury Data*, Rodime*, Sea- 
gate*. . .probably the drive you currently 
have or the one youVe planning to buy. 



*CDC is a trademark of Control Data Corporation 
Maxtor is a trademark of Maxtor Corporation 
Miniscribe is a trademark of Miniscribe Corporation 
Newbury Data is a trademark of Newbury Data, Inc. 
Rodime is a trademark of Rodime Incorporated 
Seagate is a trademark of Seagate Technology 



AT Compatibility 

The same PERSTOR 200 Series Controller 
that runs in your PC or XT works in your 
AT, AT compatible, or 386 machine, and 
will effectively yield up to a two-fold 
increase in performance on your AT. 



90% to 100% Increase in Storage 

The Model PS180 Controller turns your 
20mb drive into a 39mb drive, and the 
Model PS200 Controller turns your 20mb 
drive into a 43mb drive, instantly upon 
formatting. 



PERSTO R 



Sensible solutions for your hard disk problems 
Perstor Systems, Inc. 7825 E. Redfield Rd, Scottsdale, AZ 85260 (602) 991-5451 



238 Inside the IBM PCs • BYTE 1987 Extra Edition 



Circle 176 on Reader Service Card (Dealers: 177) 



Add up to 96K 
above 640K to all 
programs, including 
PARADOX and 1-2-3. 



Parity-checked 256K 
with a one-year 
warranty 



Run custom software 
orthe3270PC 
Control Program 
above 640K. 




Run resident 
programs like 
Sidekick above 640K. 



Top off a 512KIBM 
ATs memory to 640K 
and add another 
128K beyond that. 



Short card works in 
the IBM PC, XT, AT 
and compatibles. 

Add expanded 
memory to programs 
supporting the 
Lotus /Intel/ 
Microsoft 
specification 3.2. 



MAXIT "memory works above 640K 
for only $195. 



Break through the 640K barrier. 

MAXIT increases your PC's available 
memory beyond 640K. And it does 
it for only $195. 

MAXIT includes a 256K half-size 
memory card that works above 
640K. MAXIT will: 

■ Add up to 96K above 640K to all 
programs. 

■ Run memory resident programs 
above 640K. 

■ Top off an IBM AT's memory from 
512Kto640K. 

■ Expand 1-2-3 Release lAor 2.0 
worksheet memory by up to 256K. 

■ Add expanded memory above 
640K to programs like Symphony 1 . 

Big gain — no pain. 

Extend the productive life of your, 
IBM PC, XT, AT or compatible. Build 
more complex spreadsheets and 
databases without upgrading your 
present software. 



Installation is a snap. 

MAXIT works automatically. You 
don't have to learn a single new 
command. 

If you have questions, our cus- 
tomer support people will answer 
them, fast. MAXIT is backed by a 
one-year warranty and a 30-day 
money-back guarantee. 

Order toll free 1-800-227-0900. 

MAXIT is just $195 plus $4 ship- 
ping, and applicable state sales tax. 
Buy MAXIT today and solve your 
PC's memory crisis. Call Toll free 1 - 
800-227-0900 (In California 800- 
772-2531). 
We accept VISA, MC, AE, and DC. 



m 



Osborne McGraw-Hill 

2600 Tenth Street. Berkeley, California 94710 



MAXITisa trademark o I McGraw-Hill CCIG software. IBM isa registered trademark of International Business Machines Corporation; 1-2-3 and Symphony are 
registered trademarks o( Lotus Development Corporation, Sidekick is a registered trademark of Borland Internalional, Inc; PARADOX is a trademark o( ANSA 
Software. 

Circle 162 on Reader Service Card 



BUS INTERFACE DESIGNS 



which matches the IBM PC's word I/O 
operations. 

The interface design uses a 16R6 PAL 
to decode only the 26 register locations 
required, leaving the upper six locations 
for perhaps another card with a few regis- 
ters on it. The PAL sequencer allows for 
all features discussed above. In addition, 
it lets you use NSC810A chips on any 
IBM PC bus for both byte and word ac- 
cess. The timing for a read cycle is shown 
in figure 12. 

The NSC810A uses multiplexed ad- 
dress and data lines, so you must allow 
sufficient time to clock both address and 
data into the chip during I/O accesses, 
even on an 8-MHz PC. This requires that 



the read/ write pulses be at least three 
cycles long, and the ALE must be high 
for at least two cycles. The PAL remulti- 
plexes the bus from the static address 
lines and uses the I/O CH RDY line to de- 
lay the PC while it clocks an I/O access 
through at a speed that the NSC810A can 
handle. The PAL equations are in PAL- 
810.LST. 

The NSC810A is a CMOS chip, which 
reduces power consumption enormously. 
This is a significant advantage in multi- 
chip boards. It also means that the 
NSC810A requires CMOS logic levels, 
whereas the IBM PC bus uses TTL. 
More precisely, a CMOS input high level 
is required to be 3.5 volts or greater, 



while an LSTTL output at full load is re- 
quired to be 2.4 V or greater. This means 
that all bus lines to the NSC 8 10 A must be 
buffered, even though the load is very 
low. The best buffers in this case are 
HCT series because they are input TTL- 
compatible and output CMOS-compat- 
ible. However, the drive capability of a 
74HCT245 is only about 35 percent of a 
74LS245. So, you take the unusual step 
of using two buffer chips in series: a 
74LS245 off the data bus and then 
HCT245totheNSC810A. 

If a simple TTL output drives the 
NSC810A, you can use a 2. 2K-ohm pull- 
up resistor to increase the logic high out- 

continued 



IBM 
PIN NO. 

A22 
A23 
A24 
A25 
A26 
A27 
A28 
All 



A10 
B20 

B14 
B13 
B2 



A9 
A8 
A7 
A6 
A5 
A4 
A3 
A2 



A30 
A31 
A29 



PC 
FUNCTION 

A9 
A8 
A7 
A6 
A5 
A4 
A3 
AEN 

I/O CH RDY 
CLK 

IOR 

IOW 

RESET 



DO 
Dl 

D2 
D3 
D4 
D5 
D6 
DL7 



Al 
AO 
A2 



V C C 



ADDITIONAL DECODING FOR UP TO EIGHT MC682U 
I 1 1 

I v cc 



DIP 
SWITCHES 



74LS682 



A=B GND 



BS 



^T 






74LS138 

A2 
Al 
AO 



GND 
El 



E2 E3 



Vcc 



J 



12 



11 



23 



10 



I 



6 
CS 



Vcc 

t 






Ti Is 



CLK 

16R4 
6821 

CONTROL 
PAL 



I 10 1" 

1 1 1 20 fl9 



19 



i 1 I 



MC6821 
(1 OF 8 ) 



CS2 



CSO 
CSl 



[20 



18 



21 



17 CS 



13 



12 



RES 34 



SEL 



74LS245 



r 



18 



33 



32 



16 



15 



30 



14 



29 



13 



28 



12 



27 



26 



R/W 
CSO 



RES 



6821B 



DO 
Dl 
D2 
D3 
D4 
D5 
D6 
D7 



RSO 
RSI 
CSl 
CS2 



GND 



1 





1st, 6821 


2nd. 6821 


CSl (24) 
CS2(23) 


Vcc 

A2 


A2 
GND 



NOTE: 

TWO MC6821S CAN BE ADDRESSED 

USING THE ABOVE CONNECTIONS 



Figure 10: (a) A circuit design that uses the MC6821 as a word I/O port. The note tells you how to connect two MC6821 chips. 
(b) Use of a 74LS138 decoder to interface up to eight MC6821 chips to the circuit. 



240 Inside the IBM PCs • BYTE 1987 Extra Edition 



MICROMINT'S Gold Standard in Single Board 

Computers & Controllers 




MICROMINT INTRODUCES A STANDALONE SERIAL DIGITAL IMAGING SYSTEM. The 
MICROMINT ImageWise' Serial Di$ttalImaginS System is the most cost effective 
and versatile high performance grayscale video digitizing system on the market today. 
The Image Wise system has been designed to function as a standalone digitizer or as 
an integral component ol a complete tele-imaging system. ltna^eWise""' s serially bit 
mapped digitized pictures give ft almost universal compatibility with any computer 
capable of attaching to a modem or terminal. It is ideally suited for CAD/CAM. 

esbtop Publishing, automatic inspection, and security applications. 
Critical-System functions such as image resolution and picture update can be 
controlled and commanded remotely. Images are transmitted and received serially, 
either compressed or uncompressed, and can be displayed, transmitted, stored, 
edited, or processed for use in a variety of indusuy standard application software. 



IMAGEVG1SE SYSTEM SPECIF JCATtONS 

• NOr bus dependent-can function standalone 

• Tiueframe «?abber-usesa high speed flash A/Dconverierand 64K 
bytes ol sialic HAM to capture an image in i/60th second 

• Accepts atiy B fW o r color NT5C video signal. 

• Siorcspiciuresas244linesol856 pixels. 64 levelsgrayscale. 

• Resolution of transmitted image Is software selectable, all intakes are 
represented in64 levels f Cray scale. 

Selectable Resolutions; 
High: 256X244X6 
Med;t28xiS2j(6 

Low: 64X61X6 
» Video Input: I volt peab-t peak. R&Wor color 75 ohm termination 

• Video Output: 75 Ohm. 1.5 Vpeab-to-peat? NISC composite video 

• Serial InpuifOoioui: BS-2J2 - a bit. one stop bit. no parity 500 bps- 
57.6Kr>ps selectable data rale -Xon/Xoff Handshaking Swiichselect- 
able data compression (on/olf) 

• Modem compatible: Easily functions as a video telephone to send 
video I mages anywhere. 

• Video processing, disb upload/download, and display utilities provided 
for PC-DOS and MS-DOS machines 



Optional PC Uiflittes Disb ccxrerts EinageWtsc" fDes for use with popular Desktop 
and Paint Programs. 

DT01 ImageWise Digitizer / Transmitter 5349.00 

D001 ImageWise Receiver / Display 5349.00 




«flf 



OEM-286 — $775.00 

complete PC/AT-CPU 







pSCO^ 



&#* 



MICROMINTs OEM-286 is a comp lete PC/AT CPU and more The OEM-286 is the 
first low power. 100% AT compatible which has been specifically designed tor OEM 
use within the industrial and business sectors. The OEM-286 features the Zvmos 
CMOS POACH set and 100% compatible Award BIOS. The development of the 
POACH chip set has allowed the 129 IC's on a standard AT' to be reduced to 23 ICs 
and two SIMMS. What this means for you is: 
i) The overall size of a standard AT/CPU has been condensed into the expansion 

card form factor (13 <U' x 4 'It'). 
2) Pover requirements are less then 1 A® 5 volts 
3) OEM-286 plugs into a passive backplane for easy connection to other expan- 
sion peripherals. 
The OEM-286 is available in both 8 and 10 Mliz versions and comes with the Award 
BIOS. 



004-286 FE*niHS 

• tOo% AT compatible 

• ao286M!croprocessor.eor toMhz 

• 80287 o-Processor opli nal 

• 64 Kbytes of ROM. can accommodare 128 Kbytes 

• S 12 Kbytes 0IP.AM 

• Keyboard Controller 

• Expansion card sizefactor 

• Siandard interface to the System Expansion Bus 

• Battery backed real time dock. 

• Award BIOS Inclu ed. 



e MHz AT/CPU 
10 MHZ AT/CPU 
S 5LOf PASSIVE BACKP1ANE 



5775.00 
SS2S 00 
SI15-CO 



$409.00 




scieofx -recHwoa spectncAnoNS 



•HitacWHD64lK>. ana+iiCPUuid 

68 pin PITT pacfaae 
•Supenet of Z-flo Imwucilon set 

Includes hardwire mil tifij 

• Imesral erf Memory Manage/tin t 
U nil with 5 12 Kbytes address space 

« Dynamic RAM refresh 

• Wait state genetalor 

• Clocked serial I ©port 
•fichannel DUea Mcnwy Access 

Comrotter 
•S channel Asynchronous Serial 

Ccrn/ramlcaikJi interface 
•schannet ifrtti Programmable 

Reload Timer 

• ISlmemipts 

• Dud bus interlace to6&xxairf eoxx 
supponchlps 

• 6.144MHz. 9.S15MHZ. and 12.888 
MHz system operation 

MEMORr 

■ s I « K bytes dynamic R AM 01 1 board 

• Memory exieiraBy eipandabfe 104 
fitbyteCAM 

•Eitheran8K!76«. i6Ksnzs.of 
SSK 8 7256 EPROM usabte 

• Fu tl h n k t (on 8 K ROM n-Wen 1 



INPUTOUTPUT 

• Console R5-252 seru) pofi withauto 
baud rate selecuoS 8.400 baud 

• Peripher a) CSS 59 serial port, full hand- 
shabtrtg, rso-s».400 baud 

•line primer parallel lOpott 
•24b)ts bidirectional pataBell/O 

• 1 *bi 1 address decoding . 1 iO 001 1 decod- 
ing, anddualbits Inlerfacebroughl out 
loexpansloji busconnector 

•Canbc direcllyaliached 1 0UI18OMOK 

480 color graphics adapter 
•Fully ImptemenledSCSI hard disb and 

communications bus Interface 
FUOPWrMARD DISK INTERFACE 
•Uses SianAud Micrcoysi ems 9266 deb 

controller 
•CompallbicwiiHNEC 765Acontroller 
•On-chip dttfilatdaia separator 

• CancoiHrol5 l j!i'.5 , i.".ande" floppy 
disb drrres- up 1 o 4 in any combination 

• Handles bo t h FM encoded (single den- 
sity} and MFM encoded (double denary) 
data 

• NCRSSC80 SCSI bus controttei lot hard 



SBISOIXI S618OPX - 6.1 -i4MHz Computer bourd populated w/ 

256K bytes PAM. SK byte ROM monitor. withouiSCSI chip 
Add $50 00 for 9 MHz. 

SB180FX-1-30 SBI50FX- 1 compuier board ^described 

above wilh Z-Sysiemsolluwe induilmgZMJOS. ZCPIJ.V 
editor., utilities. ZAS assembler, and ZDM debugger. BIOS 
.ind ROM monitor sources. <ind hlOS lor SCSI hard distr. 
Supplied on five 31/4- Sbiso iormat DSDI) disks. 



SB180 $299.00 



58180-1 SB180 • 6.144 MHz single board compuier w/256K 5299.00 

bytes RAM and ROM monitor. Add $50.00 for 9 MHz 
SB 180-1 -20 Same as above w/ZCPR3. ZRDOS. BIOS and ROM sources 5399.00 
COMM180-S SCSI Hard Disk Intetface 5150.00 

SB180-1 OEM 100 QUANTITY PRICE 5195.00 



GT180 $395.00 

Graphics Display System 




The GT180 has both TrL 
RGB (red- green-blue 
intensity) and analog 
RGBouiputs. is totally 
compaiible with virtually 
all standard and multiscan 
CRT monitors, and has a 
connector for an IBM PC 
keyboard. 



The GT1BO offers these features: 

•Advancedgraphics controller provides intelligent line between computer and 

user 
•Only 5.75- x 8". piggy-baebs on either an SBI80 or SBI80FX computer 
•High resolution at a low cost: 640X 480with 16 ol 4096 colors 
•Hardware drawing commands: LINE. RECIANGLE. POLYLINE. POLYGON. CIR- 
CLE, ELLIPSE. ARC FILLED RECTANGLE. PAINT. PATTERN. WINDOW, and COPY 
to name but a few 

• Automatic translation of logical XY coordinates to physical frame buffer 
addresses 

• Fast drawing speed of 2 million pixels per second 

• Provides iuliy programmable horl zontal split screens and window screen 

• Fully supported by Gf 180 Graphix Toolbox whiten in Modula-2 



Graphic Display Expansion Board 

(ITLRGB only) 

Graphic Display Expansion Board 



SB180 

Software and Acce; 



SB180-U 
SB180-ZMSG/TXBSS 

SBIS0-MOD2 

SB180-MOD2G 

SB180-CASE 



SB1S0-CABLE 



Uniform Disb Formal Conversion Software 
Z-M5G Bulletin Board Software 
Turbo Modula 2 

TUrbo Modula 2 w/Graphix Toolbox 
Four half height 5'/j' drive enclosure 
w/power supply, mounting brackets and 
hardware for the SB180 or SBisoFX 
Set of 4 cables including power, term. 
disf>andpnm 



S 69.95 
Si 00.00 
S 69.00 
5 89.00 
S197.00 



$249.00 



BCC22- 

Term-Mite Smart Term 



Whypay $500 or moreforasmart terminaf? The TEUM-MnESTolfersyouallof the 
following on a single board for less than <L the price. 



• Dimensions: 4* x &'fc" 

• 128 displayable characters 

• 24 lines x 80 characters 
•Serrate transmit & receiver baud 

ratesO to- 19.200bps) 

• CRr refresh at 50 -60 Hz 

• Supports scanned and encoded 
hey boards 



• 1 1 Graphic characters 

• 25lh line reverse video status display 

• 2 1 escape functions 

• 14 control functions 

• Directly drives composite video or 
separiited sync monitor 

• All functions are firmware 
controlled. 5ource code available 



EDITING FEATURES: typeovcr.clear to screen to space or null, erase to end of 

page, erase 10 end of line, absolute cursor addressing 
VIDEO ATTRIBUTES: reverse video, half intensity, double height, double width. 

underlined, blinking and blank characters 
BUS CONFIGURATION: MICROMINT BCC compatible or no bus connection 
neccessary for standalone operation with parallel 
keyboard. 

6CC22 TERM MITE Smart Terminal Board S249.00 

BCC22K PARALLEL Encoded ASCII KEYBOARD 5 79.00 

plugs direcily into TERM MITE 




TheMICROMINT BCC52 Computer/ 
Controller is a stand alone single board 
microcomputer which needs only a 
power supply and terminal to become a 
complete system programmable in 
BASIC or machine language. The 
BCC52 uses the Intel 8052AH-BA5IC 
microprocessor which contains a ROM 
resident 8K byte floating point BA5IC 
interpreter. It contains sockets for up 
to 48K bytes of RAM/EPROM. an 
"intelligent" 2764/i28 EPROM pro- 
grammer. 3 parallel ports, a serial 
terminal port with auto baud rate 
selection, a serial printer port. 

BCC52' 

Basic-52 Computer/Controller 

5199.00 

OEM 100 QUANTITY PRICE 

5149.00 

BCC53 

Mulli Function Expansion Board w/OK 

adds 6 ports and 62 K bytes 516O.OO 

* NOW ACVULABLE IN INDUSTBIAI. TEMPERATURE RANGE-CAU. FOR INFORMATION 



BCC11 

Basic Control' 



$139.00 




Features: 

• Uses 28 single chip microcomputer 

• On board tiny basic inteipreter 

• 2 on board parallel ports & serial port 

• 6 interrupts (4 external) 

• Just connect a CPf and write control 
programs in Basic 

• 6K Bytes of RAM or EPROM 
memoty on board 

• Baud rates 1 10-9600 bps 

• ata and address bus available for 
56K memory and I/O expansion. 

• Consumes only 1.5 waits at +5. +12 
& - 12V. 

BCCtl* 

BASIC System Controller 

5139.00 



* NOW A'EAJIABLE IN INDUSTRIAL TEMPERATURE RANGE-CA1X FOR INFORMATION 



BCC40 $ 159.00 

Powerl/O Expansion Board 



The MICROMINT BCC40 PCWEC VO Eipansion Board 

provides on/off control and monitoring of eight 
1 15-230 VAC or 5-48VDC devices. Up to 16 
POWER I/O boards may be used in a system for 
total of 64 inputs and 64 outputs 

BCC40 

POWER I/O Expansion Board 
(with no power modules) 

S159.00 

with 8 Output Modules 

5249.99 

with 8 Input Modules 

5229.99 




BCC52&BCC11 

Software and Accessories 



BCC52-BOM A ROM A Ulililies-BASIC extensions 
BCC52-DOM A/B ROM A and B Utilities 

BASIC extensions and Assembler 
BCCS2/41 ROM C Utilities-Real Time Clock 

and Power I/O finnware 
BCC52-0K-OK SMARTIME BCC52 Clock and ROM C 
BCC52-8K-CIX SMARTTME BCC52 Clock w/8K RAM and ROM C 
BCC53 Multi Function Exp. Board w/OK- 

adds 6 ports and 62K Byte 
BCC08 Serial I/O Expansion Board 
BCC09 RS-2J2 to 20ma Converter 
BCC13 8 Bit. 8 channel A/D Board 
BCC30 12 Bit. 16 channel A/D Board 
BCC25-4 4x20 LCD Display 
BCC25-8 8X40 LCD Display 
BCC22K Parallel Enclosed ASCII keyboard 



S 69.00 

5 79.00 

5160.00 

5149.00 
5 55.00 
5129.00 
5197.00 
SIS9.00 
5229.00 
5 79.00 



MOTHERBOARDS -CABD GAGES— P0O7ER SUPPLIES 

MB02 5 Slot mini-mother board 

(not compatible with CCo 1, CC02) 

MB08 8 Slot full mother board 

(compatible with CCO I/CC02 

MB44 44 pin gold card edge connector 

CC01 10 inch Card Cage for one MB08 

CC02 to inch Card Cage for rwo MBoss 

UPS1I Universal Power Supply- 

used for single board applications 
.9A @ 5V ,3A @ + l2Vand ,1A@ -5V 

UPS05 Card Cage Power Supply - 

designed for a 2 or 3 board system 
tA @ 5V. .3A @ + 12V .IA@ - 12V. 

UPS10 Heavy Duty Switching Power Supply- 

used for an entire BCC system 
5.5A @ SV. .7A @ + 12V. 3A@ - 12V 

UPS2 1 2 1 Vol 1 Programming Power Supply — 

used for EPROM programming on the BCC52 
21V +/- 2% @ goonv) 



S 6.00 
S 59.00 
5 79.00 
5 19.00 



S 69.00 
S 49.00 



To order call 

1-800-635=3355 

for technical information l-(203)-87i-6l70 
TELEX: 643331 



Micromint, Inc 

4 Park Street 
Vernon, CT 06066 




Circle 227 on Reader Service Card 



The IBM® PS/2™ 

CAN READ 

BAR CODES & 

MAGNETIC STRIPES 



BUS INTERFACE DESIGNS 




TPS ELECTRONICS' 

NEW SYSTEM/2" 

READERS 



Connects in series 
with keyboard cable; 
does not affect 
keyboard operation 

• No RS-232 port needed 

• No card slot needed 

• No extra software needed 

• Completely transparent 
to any program; looks 
like keyboard input 

• Most formats available 

• Private labelling 

• Custom programming 

• Bar Code Printing Software 

Also available for 

• IBM PC, AT, 3161, 3163, 3180, 
3193, 3196 

• DEC VT200, Pro 350, Rainbow 

• Convergent Technology 

• Wang PC, VS 4200 

• Apple Macintosh 

• AT&T/Olivetti 

• Tl Professional 

• NCR DM V, PC IV 
•WYSE 

TPS Electronics 

4047 Transport Street 

Palo Alto, CA 94303 

415-856-6833 

Telex: (Graph net) 

371 9097 TPS PLA 

FAX: 415-856-3843 



Table 6: 


The register map 


of the National NSC810A. The timer ports 


must be 


accessed low byte first, followed by the high byte. This matches the order 


for access for a PC word I/O cycle 












Bits 










A4 


A3 


A2 


A1 


A0 


Register 


Access 

















Port A (data) 


R/W 














1 


Port B (data) 


R/W 











1 





Port C (data) 


R/W 











1 


1 


Not used 


— 








1 








DDR -port A 


W 








1 





1 


DDR - port B 


w 








1 


1 





DDR - port C 


w 








1 


1 


1 


Mode-definition register 


w 
















Port A - bit clear 


w 













1 


Port B - bit clear 


w 










1 





Port C - bit clear 


w 










1 


1 


Not used 


— 







1 








Port A -bit set 


w 







1 





1 


Port B - bit set 


w 







1 


1 





Port C - bit set 


w 







1 


1 


1 


Not used 


— 
















Timer (LB) 


* 













1 


Timer 0(HB) 


* 










1 





Timer 1 (LB) 


* 










1 


1 


Timer 1 (HB) 


* 







1 








STOP timer 


w 







1 





1 


START timer 


w 







1 


1 





STOP timer 1 


w 







1 


1 


1 


START timer 1 


w 




1 











Timer mode 


R/W 




1 








1 


Timer 1 mode 


R/W 


* Write to modulus register, read from timer. 







PC3/TG 

PC4/T1IN 

TOIN 

RESET 

PC5/T10UT 

T,00U'T 

I0T/M 

CE 

R0 

WR 

ALE 

ADO 

AD1 

AD2 

AD3 

AD4 

AD5 

AD6 

AD7 

GND 





1 • 


- \y— 


40 






2 

3 
4 
5 
6 




39 
38 
37 
36 
35 






NSC810A 






















7 




34 










8 
9 




33 
32 






IU 

11 
12 
13 
14 




31 
30 
29 
28 
27 






15 

16 
17 

18 




26 

25 
24 

23 






19 
20 




22 
21 





*cc 



PC2/STB 

PC1/BF 

PC0/INTR 

PB7 

PB6 

PB5 

PB4 

PB3 

PB2 

PB1 

PB0 

PA7 

PA6 

PA5 

PA4 

PA3 

PA2 

PA1 

PA0 



Figure 11: The pin-outs for the NSC8 10 A. 



242 Inside the IBM PCs • BYTE 1987 Extra Edition 



Circle 14 on Reader Service Card — •• 




merican 



f Semiconductor 



Gives you the prices 

products that have 

quickly made 

them, 



Complete systems for Less than anybody; 
And we can finance you; 
Our revolving charge makes owning the system you 
want easy! A|||| | |A|| FINANCING 



Over a 





Of AVAILABLE!! 



$ 29d 



TURBO XT 
MODEL #5301 

• Selectable 4.77 & 8 MHz 
Processing Speed • 64K RAM 
Memory Bios • tie 360K 
Floppy Drive • Floppy Controller 
w/Cable ■ Eight Expansion Slots- 
PC/XT Compatible Keyboard 
RETAIL VALUE 1099. 

OUR PRICE 499. 



SBILLION 

A LEASE * YOU OWN IT! 

I *39.™ •*, $ 45:'i$49:' X J 4S." 1 $ S9?li 



AFREE!! 



WITH ANY COMPUTER PURCHASE 




TURBO XT 
MODEL #5302 

•Selectable 4.77 & 8 MHz 
Processing Speed -640KRAM 
Memory on Main Board 'Bios- 
16 Bit 6088-2 CPU- One 360K 
Floppy Drive • Multi I/O (w/FIoppy 
Controller, Clock/Calendar. 
Parallel. Serial. & Game Port) 
■ Eight Expansion Slots • PC/ 
XT Compatible Keyboard 
RETAIL VALUE 1599. 

OUR PRICE 739. 



HARD DRIVE 

KITS fromlOmb. 
to 360 mb. 



TURBO XT 
MODEL #5303 

- Selectable 4.77 & 8 MHz 
Processing Speed ■ 640K RAM 
Memory on Main Board • Bios* 
8088-2 CPU- On B360K 
Floppy Drive • Multi I/O (w/Floppy 
Controller Clock/Calendar. Paral- 
lel, Serial & Game Port) • E ight 
Expansion Slots • One 1 0MB 
Hard Drive (w/Controller) • 
PC/XT Compatible Keyboard 
RETAIL VALUE 1999. 

OUR PRICE 1019. 



TURBO XT 
MODEL #5304 

■ 8 MHz Processing Speed • 
640K RAM Memory on Main 
Board* Bios- 16 Bit 8088-2 
CPU- Two 360K Half/Height 
Floppy Drives • Multi I/O (w/ 
Floppy Controller. Clock/Calen- 
dar, Parallel. Serial, & Game 
Port) • One 20MB Hard Drive 
(w Controller) -TURBO Nor- 
mal Mode Either Software or 
Hardware Selectable- Eight 
Expansion Slots - PC/XT 
Comp alible Keyboard 
RETAIL VALUE 2499. 

OUR PRICE 1295. 



TURBO XT 



IGHT SIMULATOR 
LIMITED TIME OFFER!! 

^5 $Cm 



MODEL #5305 

■8 MHz Clock Speed -640K 
RAM Memory on Main Board ■ 
Bios- 16 Bit 8088-2 CPU • Two 
360K Half /Height Floppy Drives- 
Multi I/O (w/FIoppy Controller, 
Clocks Calendar, Parallet, Serial, 
& Game Port) • 30MB Hard Drive 
(w, controller) • TURBO- Nor- 
mal Mode Either Software or 
Hardware Selectable- Eight 
Expansion Slots - PC/AT 
Com palibl e Keyboard 
RETAILVALUE2999. 

OUR PRICE 1479. 



TURBO XT 
MODEL #5306 

• 8 MHz Processing Speed • 
640K RAM Memory on Main 
Board - Bios - 16 Bit 8088-2 

CPU ■ Two 360K Half/Height 
Floppy Drives • Multi I/O (w/ 
Floppy Controller. Clock/Calen- 
dar, Parallel. Serial, & Game 
Port} • 20MB Hard Drive (w/Cnn 
(roller) ■ TURBO Normal Mode 
Either Softwareor Hardware 
Selectable ■ Eight Expansion 
Slots • PC/XT Compatible 
Keyboard ■ I BM Compatible 
Enhanced Graphics Adapter 
(EGA) ■ High Resolution 
EGA Monitor 
RETAIL VALUE 



VIDEO 

GRAPHIC 

PACKAGES 

MONOCHROME 

COLOR 

EGA ENHANCED 

WITH MOST SYSTEM PURCHASES 



AT PORTARIE TURRO mm» 
MODEL #5509 HP' 

XT640 RAM Memory- AT 512 
RAM Memory • V2 High 360 Floppydisk 
drive • 6088 CPU/B02B6 CPU • 
RAM 640K • Operating system: CP/M86 
& UCSD-P • Interface cards: multi 
VO card, color graphics card or mono- 
chrome card • V Dual frequency mon- 
itor or monochrome monitor • Power: 




OORI ICE 1949. $25 m ° 



'•« "~ 



135 W power suppl y (for XT) 200W power 
supply (for AT) -AT /XT swilchable key- 
board (Cherry Switch) ■ Size: 48 cm 
"- n(0) - 

lue; 

OUR PRICE 1749. 



TURBO AT 
MODEL #5503 

■10MHz Clock Speed- 512K 
RAM Memory (1MB Option 
Available) - Bios • Intel 80286 
Microprocessor - 1 .2MB Half/ 
Height Floppy Drive • 40MB 
Hard Drive (w/Controller) • Eight 
Expansion Slots- Serial/Parallel 
Adapter • AT Compatible Key- 
board ■ Performance 16, 12, 
10, 8, 8 MHz Available. 
RETAIL VALUE 5999. 

OUR PRICE 2099. 



BABY AT TURBO 
MODEL #5507 

■ 6-8-10 MHz Processing Speed 

■ 6 MHz - 640K (Expandable to 
1 M B o n Main Board) • Bios ■ 
80286 Based CPU -360K 
Half/Height Floppy Drive « Hard 
Drive (w/Controller) • Multi lO 
(w/FIoppy Controller, Clock, Cal- 
endar, Parallel. Serial. & Game 
Port) • 20MB Hard Drive (w/Con- 



OUR PRICE 1759. 



TURBO AT 
MODEL #5501 

• 512K RAM Memory (Expand- 
able to 1 MB on Main Board) • 
80286Based CPU -Bios- 
1 .2MB Half/Height Floppy Drive • 
20MB Hard Drive (w/Controller) • 
Eight Expansion Slots- Parallel 
Port -AT Style Keyboard • Per- 
formance 1 6, 1 2, 1 0, 8, 6 MHz 
Available. 
RETAtLVALUE 3999. 

OUR PRICE 1719. 



MODEL #5502 

'10MHzClockSpeed-512K 
RAM Memory (1MB Option 
Available) - Bios • Intel 80286 
Microprocessor • 1.2MB Hall/ 
Hei ght Floppy Drive -30MB 
Hard Drive (w/Controller) • Eight 
Expansion Slots • Serial/Parallel 
Adapte r-ATCompatible Key- 
board-Performance 16, 12, 
10,8,6 MHz Available. 
RETAIL VALUE 4499. 

OUR PRICE I9S9. 



INSTANT CREDIT NOW! 

Even if you have a computer.., 



CHEAPER PRICES? AMERICAN SEMICONDUCTOR had lo make a choice belween building our products as cheaply as 

products lor se rvice, du rabil i ty, a nd yo ur long last i ng enjayme nl . 
Wb krvowyou would proler lo deal with a company that puis everything possible mlo its producl. lo make ii ihe best. The be 

NO OTHER COMPANY CAN OFFER YOU A 5 YEAR WARRANTY ON ITS XT & XT TURBO MOTHER BOARDS AND IN5TANT CREDIT BESIDES! 
"Our direct con ttol. tram RSD component selection to Ii rial assembly, enables us to maintain quality throughout Ihe complete manufacturing process: THAT'S WHY WE SELL SO MANY! 



:hings are nev 
FANTCREDIl 



a 'gel-by" product, or building quality inlo our 
ig cheapest, and cheap things are seldom the best. 



MODEL #5701 

• 1 6 MHz Processor Speed • Intel 
80386 Micro Processor • 32 Bil 
architecture • Compatible with 8 MHz 
80286 Hardware & Software • Phoe- 
nix 386 Bios • Four Speed Selection 
(16, 8, 6. 4.77 MHz) • Relocation of 
Bios • EGA Bios to 32 Bit High Speed 
RAM for Lightning Execution • Real 
Time Clock • 4, 8 or 1 MHz 80287 
Co-processor Socket • Standard 32 Bit 
High Speed Memory Board 1MB of 
RAM Memory Installed, Connectors 
For A ttaching U p to 10MB of Memory 

• 1.2 MB Half/Height Floppy Drive ■ 
Eight Expansion Slots • Serial/Parallel 
Adapter • AT Compatible Keyboard 
RETAIL VALUE 8999. 

OUR PRICE 3272. 



President, American Semiconductor, inc. 



We'll sell you add-ons from our TOP QUALITY products, and FINANCE them too! 



MONITORS ARE ADDITIONAL. SURGE PROTECTOR/POWER DISTRIBUTION CENTERS ARE OPTIONAL AND AVAILABLE FOR ONLY S39.95 



SAY CHARGE IT! 

ADD 3.95% 



ORDER TOLL FREE! 



^Semiconductor I 

Jmmm 



DEALERS! call for the up to minute prices for DRAM'S, 8087s, EXPANSION CARDS, IC'S 

and much, much more! 

1-800-825-SAVE 



1-800-237-5758 EXT 823 K ^^f ■ Bfl ■ ^ 

CUSTOMER SERVICE (813) 961-5584 I MB^^^BI II IflBlv 

IMPORT EXPORT I ^^^B ^^J^^^m m 

OPENMON-FRI8AM-7PM. /[rCTV 
OPEN SATURDAY 9 AM -5 PM. (fcb [} 
CORPORATE HEADQUARTERS: 16520N. FLORIDA AVE.. LUTZ. FLORIDA 33549, (813) 961-9444 



NORTHEAST REGIONAL 

SALES OFFICE 1-301-933-3523 

WASHINGTON, D.C. AREA 

1-800-942-9488 



OFFICES NOW OPEN: TAMPA - MIAMI - LOS ANGELES - WASHINGTON. D.C 

=ilCES SUBJECT TO CHANGE DUE TO AVAILABILITY AND MARKET FLUCTUATIONS. \ ~ " 



- TAIPEI. TAIWAN - TOKYO. JAPAN 



BUS INTERFACE DESIGNS 



put voltage level. This technique is used 
for the PAL output lines, as shown in fig- 
ure 13. The chip select of an NSC810A is 
active high, so a 74HCT238 is used to de- 
code the chip selects from address lines 
A10 through A12. 



A New Degree of Freedom 

I hope that this article has given you 
enough details to show you that interfac- 
ing to the IBM PC bus is not difficult, 
even when several manufacturers' prod- 
ucts are involved. Although many compa- 



nies produce quality peripheral cards for 
the PC, Murphy's Law decrees that these 
cards never do precisely what you want. 
Conversely, you might find a peripheral 
card that has just the features you need, 
but it might also be loaded with features 



SIGNAL NAME | Tl | T2 | T3 | T W | T W I T W | T4 | Tl | T2 | T3 | T W | T W | T W | T W | T H | T4 | T2 I SOURCE 

** n_jLJi_Ji_JLJi_Ji_n_jL^^ pc 

For ~ ""| ["" ~~~| |~~ PC 



ALE 



RD 



f/OCHRDY 



ADEN 



1_T 



DATEN 



I/O 



I/O 



I/O 



I/O 



I/O 



°*TA aS^aSaSSSSy^ ./0 



Figure 12: Timing signals for an NSC810A word I/O cycle. I/O CHRDYis used to extend the PC I/O cycles. 



Motion Control & 
Data Acquisition 



on your IBM PC or Apple II 
and all compatibles 




Smart 2 Axis Motion Controller: For many types 
of motors & encoders. New I. C. (from HP) allows 
changes & monitoring on the fly. Optically isolated. 
W/SOFTWARE $400. 

Four Axis Stepper Driver: With SOFTWARE & 
motor for instant automation. $95. 
Fast A/D Board: With program medgai n, 650 KHz, 
4 inputs, $220. Complete Scope hardwares SOFT- 
WARE $500. Also: 1 2 Bit A/D, Relay Driver, Real 
Time Clock. Circuit developers Project Book $25. 



How do you do it? Use our Local Applications 
Bus, LAB 40. One host adapter{$1 50) supports 
up to 8 boards, like those above, on a 50 ft. 
ribbon cable- 



Please call (41 5) 755-1 978 forfree literature. 



(omputer^j^tmuum 



75 Southgate Ave.. Suite 6 
Daly City. CA 9401 5 



(415) 755-1978 




6805/6305 SINGLE CHIP 

MICROCOMPUTER 
DEVELOPMENT SYSTEMS 

Two systems allow the IBM PC/XT/AT to be used as 
a complete development system for the MOTOROLA 
6805 series single chip microcomputers. Model 
MCPM-1 supports the MC68705P3, P5, U3, U5, R3, 
& R5 chips. Model MCPM-2 supports the 
MC1468705F2 & G2 cmos versions. Both systems are 
priced at $495 and include a cross assembler pro- 
gram, a Simulator/Debugger program and a program- 
ming circuit board with driver software. A system is 
also avail, for the HITACHI 63705 ZTAT micro. 

THE ENGINEERS COLLABORATIVE 

P.O. Box 53, West Glover, VT 05875 
(802) 525-3458 



ANALOG I/O and DSP 

ideal for PC based 

Measurement/Test, Control, 

Acoustics, and Signal Processing 



PC- 12 «1 6 SEor8DFinputs, programmable gain 
amplifier, precision S/H, 12-bit A/D, dual 
12-bit D/A, I/O Filters, 8-bit digital I/O, 
memory mapped I/O assisted by timer. 
$650. 

PC-12SC •12-bit A/D & D/A with I/O Filters and 
timer, for voice I/O, IEEE Speech Course, 
etc. $450. 

PC-DMA 12 »1 2-bit A/D and D/A to 100 KHz, dual- 
channel DMA controller for concurrent 
I/O capability, programmable H/W timer 
for zero timing jitter, I/O filters, program- 
mable gain and offset amplifier, 16-chan- 
nel auto-scan multiplexer, 8-bit digital I/O, 
etc. $1250. 

PODMA 1 6»Featurescompatibleto PC-DMA, butwith 
16-bit A/D and dual 16-bit D/A. $1595. 

PC-DSP 22»22-bit floating point DSP board for PC, 
compatible to the above PC-DMA boards 
for R/T DSP, 1 K complex FFT in 1 0msec. 

SAMPLE •S/W for PC-DMA performs continuous 

EDITOR hard disk transfer, search, audio edit, etc. 

Other new products include 1 MHz 1 2-bit A/D and 
D/A,servo motor controller, etc. All products supported 
by S/W driver and application packages. 

CANETICS, Inc. 

PO Box 70549, Pasadena, CA 91107 
(816)584-0438 



Circle 77 on Reader Service Card 



Circle 44 on Reader Service Card 



244 Inside the IBM PCs • BYTE 1987 Extra Edition 



BUS INTERFACE DESIGNS 



IBM PC 



PIN NO. 

A19 
MO 
A21 



A22 
A23 
A24 
A25 
A26 



All 



AlO 
B20 



B14 

B13 

B2 

A27 

A28 

A29 



A31 



A9 
A8 
A7 
A6 
A5 
A4 
A3 
A2 



_ 



A12 
All 
AlO 



A9 
A8 
A7 
A6 
A5 



AEN 



I/O CH RDY 
CLK 



IOR 
IOW 
RESET 
A4 
A3 
A2 
Al 



AO 



DO 
Dl 
D2 
D3 
D4 
D5 
06 
D7 



15 



13 



11 



v cc 

|20 



74LS682 



A=B GND 



BS 




14 



12 



r¥ 



DIP 
SWITCHES 



V CC 



116 



A2 
Al 
AO 

HCT238 



El E2 



00 
01 
02 
03 
04 
05 
06 
07 

E3 



15 


CEO 


14 


CE1 


13 


CE2 1 


12 


CE3 ! 


11 


CE4 1 


10 


CE5 1 


9 


CE6 1 


7 


CE7 I 



CE 



v C c 



Vcc 



m 



LJ 



Vcc 

A 



Vcc 

[20 



CLK 

16 R6 
NSC810 
CONTROL 
PAL 



OE GND 



/F 



17 



16 



15 



14 



13 



12 



ft? 



11 



ii [io Vcc 

|20 fl9 



RES 



17 



16 



15 



14 



13 



12 



DIR 



EN 



HCT245 



10 



DIR 



Vcc 

Jsi. 



ADEN 



SEL 



19 



EN 



74LS245 



X 



18 



17 



16 



15 



14 



13 



Vcc 



20 



RD 



ALE 



!2.2K (4) 



DATEN 



19 



DllR 



EN 



HCT245 



J? 



18 



16 



15 



14 



13 



12 



10 



11 



12 



13 



14 



15 



16 



17 



18 



19 



CE 



IOT/M 



RES 

WR 
RD 
ALE 



NSC810A 
V CC = 40 
GND=20 



ADO 
AD1 
AD2 
AD3 
AD4 

AD5 
AD6 
AD7 



Figure 13: The major differences in this interface are the use of HCT parts to get the proper interface voltages and the necessity 
of multiplexing the address and data lines. The PAL outputs are pulled up by resistors to ensure that the logic high output voltage 
is adequate for the NSC810A. 



you don't need and don't want to pay for. 
With the information presented here, 
you now have the freedom to build your 
own peripheral card if a vendor's card 
won't do the job. You will also be able to 
produce your own interface cards if you 
are trying to build specialized computer- 



controlled equipment. 

If you don't have access to a PAL pro- 
grammer, don't despair. Certain compa- 
nies will custom-program PALs for a 
small fee if you provide the listings. They 
will often give you a price reduction if the 
equations are on floppy disk, so it makes 



sense to make use of the BYTE disk ser- 
vice first. 

It's possible that this article will 
inspire you to build the PAL program- 
mer project in the January issue of BYTE 
("A PAL Programmer" by Robert A. 
Freedman). ■ 



BYTE 1987 Extra Edition • Inside the IBM PCs 245 



-The Buyer's Mart- 

A Directory of Products and Services 



THE BUYER'S MART is a monthly advertising section which enables readers 
to easily locate suppliers by product category. As a unique feature, each 
BUYER'S MART ad includes a Reader Service number to assist interested 
readers in requesting information from participating advertisers. 

RATES: 1x-$475 3x-$450 6x-$425 12x-$375 
Prepayment must accompany each insertion. VISA/MC Accepted. 

AD FORMAT: Each ad will be designed and typeset by BYTE. Advertisers must 



furnish typewritten copy. Ads can include headline (23 characters maximum), 
descriptive text (250 characters maximum), plus company, name, address and 
telephone number. Do not send logos or camera-ready artwork. 

DEADLINE: Ad copy is due 2 months prior to issue date. For example: October 
issue closes on August 1 . Send your copy and payment to THE BUYER'S MART, 
BYTE magazine, 1 Phoenix Mill Lane, Peterborough, NH 03458. For more infor- 
mation call Mark Stone at BYTE 603-924-3754. 



ACCESSORIES 



BAR CODE 



BAR CODE 



SOFTWARE PACKAGING, DISKS 

Cloth binders & slips like IBMs. Vinyl binders, boxes, and 
folders-many sizes. Disk pages, envelopes & labels Low 
qty. imprinting. Bulk & branded disks. Much More! Low 
prices. Fast service. Call or write for FREE CATALOG. 

Anthropomorphic Systems Limited 

376-B East St. Charles Road 

Lombard, IL 60148 

1-800-DEAL-NOW (312) 629-5160 



Inquiry 551. 



BAR CODE MADE EASY 

PERCON® E-Z-READER™ keyboard interfaces and multiuser 
RS-232 models mate K easy to add bar code to virtually any com- 
puter/terminal WITHOUT SOFWXRE MODIFICATION. Immecfate 
shipping. Two. year warranty. Bar code printing 
software available Call for details on fast, accurate, fissy. data 
entry. Substantia! reseller discounts. 

PERCON® 

2190 W. 11th St., Eugene, OR 97402 
(503) 344-1189 



Inquiry 556. 



BAR CODE READERS 

PC/XT/AT Bar Code Reader attaches as 2nd 
keyboard, reads bar codes as keyed data. One 
model converts to external mounting via velcro or 
slot mounting in PC — $385. RS-232 
Model— $399. Rugged metal wand, reads UPC, 
EAN, 2 of 5, Code 39, etc. Same day ship. 1 year 
warranty. 30 day $$ back guarantee. 

Worthington Data Solutions 

417-A Ingalls St., Santa Cruz. CA 95060 
(408) 458-9938 



COMPUTER PROTECTION 

• UPS • LINE CONDITIONERS • ISOLATORS 

• MODEM PROTECTORS 

• AC POWER INTERRUPTERS 

— HUNDREDS OF HINTS & PRODUCTS — 

FREE CATALOG 1-800-225-4876 

ELECTRONIC SPECIALISTS, INC. 

171 So. Main St., POB 389, Natick, Mass 01760 

1-800-225-4876 



READ & PRINT BAR CODES 

Internal unit (short-card for IBM PC/XT/ATfcom- 
patibles) or RS-232 Dual Port unit: both work with 
ail keyboards and software. Includes stainless steel 
wand or LASER gun. User-friendly Bar Code and 
Text printing software with format/size flexibility. 

Seagull Scientific Systems 

601 University Ave., Suite 150, Sacramento, CA 95825 

(916) 386-1776 



nquiry 552. 



Inquiry 557. 



BAR CODES/BIG TEXT FROM YOUR PROGRAM 

Add bar codes and/or big graphics text to your program. 
Print from inside of dBASE, BASIC, C, any MS-DOS 
language or even a word processor. Bar codes: UPC- 
A, UPC-E, 2 of 5, and Code 39. Big text in wide and 
narrow sizes .5", .3" and .2" tall. Prints on Ep- 
son/Oki/IBM LaserJet printers $179-$239. 

Worthington Data Solutions 

417-A Ingals St.. Santa Cruz. CA 95060 
(408) 458-9938 



BOOKS/DISKS/VIDEOS 



FREE CATALOG 

Diskettes & Ace • Dust Covers • Furniture • Data 
Cartridges • Plotter Pens • Clean'g Supl • Tapes 
& Ace • Ribbons • Printers • Computer Paper • 
Copier Supplies • Surge Prot • Cables & Ace • 
Print Wheels • MUCH MORE! 

Call, write or circle inquiry card for a FREE Catalog 

GAAN COMPUTER SUPPLIES 

186 B East Sunnyoaks, Campbell, CA 95008 
(800) 523-1238, In Calif. (408) 370-6747 



Inquiry 553. 



BAR CODE READERS 

Among the industries best and most widely used barcode 
reader, reads all major barcode formats (code 39, 2 of 5. 
UPC/EAN, codabar), connects between keyboard & system, 
advanced CMOS uses keyboard power supply, connects to all 
IBM compatibles and DIN terminals, completely OS indepen- 
dent, software independent. Same day ship, 1 year warranty, 
30 day satisfaction guarantee. CALL for prices too low to 
advertise. 

Solutions Engineering Sales 

8653 Georgia Ave., Silver Spring, MD 20910 

800-635-6533 



A Print-lt-Yourself Book 

You may read on screen as easily as you print out 
the 333 pages. Educational, entertaining with a big 
message as far out as the doomsday scenario & 
the sci-fi means of survivor education. $18 for the 
3 disk set for PCs, packaged with free PC-Write 
2.71 complete with spelling checker. 

DIA Inc. 

334 Forepeak Avenue, Beachwood, NJ 08722 
(201) 341-8113 



Inquiry 558. 



Inquiry 560. 



CAD/CAM 



COMPUTER VOLUME CONTROL 

At last ... no more annoying BEEPS! Quiets 

games tool Adjust volume anytime from a faint 

whisper to maximum. Installs easily, directly to 

speaker wires with solderless terminals. 

Only $29.95 ppd or 2 for $49.95. 

ViSAJMC/Check or MO. AZ add 67% tax. 

INNOVATIVE COMPUTER SOLUTIONS, INC. 

2929 N 44th St., #400, Phoenix, AZ 85018 

(602) 946-4743 



Inquiry 554. 



DATA INPUT DEVICES 

Bar Code & Magnetic Stripe Readers for microcom- 
puters & terminals, including IBM PS/2 & others, DEC. 
AT&T, CT, Wyse, Wang. All readers connect on the 
keyboard cable & are transparent to all software. Low 
cost bar code pn'nt programs & magnetic encoders are 
also available. GSA approved. 

TPS Electronics 

4047 Transport, Palo Alto, CA 94303 
415-856-6833 Telex 371-9097 TPS PLA 



CadON™ 

Add on to AutoCAD for schematic entry and PC 
layout. Features extensive user expandable 
libraries, netlist extract, bill of materials, 
ratsnesting. Does 100% check of layout against 
schematic. Unlimited trace widths, pad sizes, etc. 

RUBOW SYSTEMS 

19102 Bridwell St., Glendora, CA 91740 
(818) 914-3963 



Inquiry 559. 



Inquiry 561. 



COMMUNICATIONS 



DIABLO 630 SHEET FEEDER 
AUTOMATIC 2-TRAY 
MINT - ONLY $4001! 

Prints atl first pages on letterhead and all other pages 
on blanks automatically. Feeds thousands of consecutive 
pages without a misfeed. Printers also available. 

Quality Discount Computers 

135 Arfetview Drive, Wellington. NV 89444 
(702) 465-2473 Ext. 120 



Inquiry 555. 
246 Inside the IBM PCs 



PRINT BAR CODES & BIG TEXT 

Print Labels with Large Text and/or bar codes on PC 
with Epson/Oki/IBM LaserJet printers. Text to 1"x1" 
reads at 50 ft. Bar Codes: Code 39, 2 of 5, UPC/EAN, 
MIL-STD, AIAG. Flexible format/size, Reversals. File In- 
put, Menu-driven $279, Other menu-driven programs 
for bar codes $49-$129. 

Worthington Data Solutions 

417-A Ingalls St, Santa Cruz, CA 95060 
(408) 458-9938 



BBS ALTERNATIVE 

The Business Connection— closely-coupled commware. 
Host reacts only to matching remote nodes. Secure, 
private mail/messaging. Off-line msg creation on 
remotes. User-friendly, auto call/logon, auto msg inter- 
change, help, more. For IBM & compats, DOS 3.X, 256K, 
Hayes-type modem. Shareware rel— $25. Complete 
multi-function ver including printed manual— $99. 

SYNERGETIC INNOVATIONS 

P.O. Box 79, Arroyo Grande, CA 93420 



Inquiry 562. 



• BYTE 1987 Extra Edition 



The Buyer's Mart- 



COMPUTER INSURANCE 



DATA/DISK CONVERSION 



ENTERTAINMENT 



COMPUTERS + INSURANCE = SAFEWARE 
Call toll free for Information 

• LEASED COMPUTERS • HOME COMPUTERS 

• OVERSEAS COMPUTERS 

• BUSINESS COMPUTERS 

• COMPUTERS LEASED TO OTHERS 

• COMPUTERS TAKEN TO SHOWS 

• COMPUTERS HELD FOR SALE 

• OTHERS" COMPUTERS IN YOUR CARE 

tu SAFEWARE 

The Insurance Agency 

1-800-848-3469 IN OHIO (614 



Inquiry 563. 



Inc. 

(614) 262-0559 



DISK AND TAPE CONVERSIONS 

High quality conversion services & OCR scanning for 
Dedicated Word Processors, Mini end Micro computers. 
Over 1000 3'^". 5V* n , and 8" formats, B00-1600BPI tape. 
Conversion between Wang, NBI, CPT, DEC, Vydec, 
Lanier, OS/6, Xerox, Linolex, Lexltron, MemoryWrlter, 
Edltwriter, CompEdlt, Exxon 500, Exxon Oyx, IBM Sys/ 
34/36/38/5520. MAC, Victor, TRS, Apple II & III, NSTAR, 
IBM PC/AT/3 1 /*, HP, end most other Micros. Conversion 
directfy Into word processing software such as DW3, WP, 
MS/WRD, WS, Samna. MM, PFS, & many others. 

DATA FORMATS. INC. (408) 629-1 088 



NFL CHALLENGE UPDATE 

PROROSTR " increases the realism of your NFL 
Challenge game by providing you with an easy way to 
update player data files. Prints a formatted printout of 
the player names and data. Includes PRODATA m the 
complete 1987 player roster and statistics. Requires 
IBM type NFL CHALLENGE (copyright XOR Corp.). 
PROROSTR $32 ppd. PRODATA may be purchased 
separately $22 ppd. Check, MO, MC, VISA 

HD&S Software 

Box 924183, Houston TX 77292 
(713) 688-9102 



Inquiry 569. 



Inquiry 575. 



CROSS ASSEMBLERS 



Disassemble MPU OBJECT CODE on your PC 

Relocatable, symbolic disassemblers are now available 
for the Motorola, Intel, RCA.TI, Rockwell, & Zilog micros! 
Automatic label generation, assembly capability and 
much more. Call and ask for what you need. 

RELMS™ 

P.O. Box 6719 

San Jose, California 95150 

(408)265-5411 

TWX 910-379-0014 (800) 448-4880 



Inquiry 564. 



DATA CABLES & PARTS 



CONVERSION SERVICES 

Convert any 9 track magnetic tape to or from over 
800 formats including 3V2" 5V4" 8" disk formats & 
word processors. Disk to disk conversions also 
available. Call for more info. Introducing OCR Scan- 
ning Services. 

Pivar Computing Services, Inc. 

165 Arlington Hgts. Rd., Dept. #B 
Buffalo Grove, IL 60089 (312) 459-6010 



Inquiry 570, 



dBASE III COMPILERS 



FLOW CHARTS 



FLOW CHARTING 11+ HELPS YOU! 

Precise flowcharting Is fast and simple with Flow Charting 
1 1 + . Draw, edit and print perfect charts: bold and normal fonts, 
24 shapes— 95 sizes; fast entry of arrows, bypasses & con- 
nectors; Fast Insert Line; shrink screen displays 200-column 
chart; 40 column edit screen for detail work, much morel 

PATTON & PATTON 

81 Great Oaks Blvd., San Jose, CA 95119 

1-800/672-3470, ext. 897 (CA residents) 

1-800/538-8157, ext. 897 (Outside CA) 

408/629-5044 (Outside the U.S.A.) 



Inquiry 576. 



HARDWARE 



Custom Cables for LAN's 

Ethernet— Token Ring, RG62, 59, 58, Twinax, Dual 
Wang, Telco, Mod adapters, R J1 1 , 12, 45, octopus 
cables, Harmonicas, V.35, M50, IEEE-468, RS232, 
422, 449, parallel, ribbon cable, switches, Baluns, 
surge sentry, connector parts, bulk cable, tools 

Communication Cable Company 

P.O. Box 600, Wayne, PA 19087 • 215-644-1900 

Send for Catalog 



FREE dBASE III + 

COMPILER DEMO DISK 

Dont buy Clipper 1 " unlil you see our FREE dBASE Com- 
piler Evaluation Kit. Includes DEMO DISK with 8 PRG"s 
and results of compiling with Clipper, Quicksilver & Fox- 
BASE + . Also 15 benchmark tests, complete magazine 
reviews, and detailed brochures about all 3 compilers. 
FREE. No obligation. Call 24 hours, 7 days. 

dataBASE Specialties (415)652-2790 

P.O. Box 2975, Oakland, CA 94618 



ANDY'S COMPUTERS 

RQ Box 6096. Austin. TX 78762 

1 (800) 521-2283 for ordering 

1 (512) 478-9803 for Info 

Prices include Amber Monitor (TTL), 640K M/B, 256K Install- 
ed Case, Fewer Supply, Keyboard, Printer, Port, Disk 

Turbo XT 10 MZ $500. AT 286 Mini 6-12. . . .$964 

AT 286 6-10MZ $958 386 16MZ $2775 

Hafd Disks add: 20 MEG $330 Portable XT 10 MZ. . .$759 

Portable AT $1190 Portable 386 16 MZ.S3200 

Other equipment and configurations 
available at similar savings. 



Inquiry 565. 



Inquiry 571. 



Inquiry 577. 



DATA CONVERSION 



DEMOS/TUTORIALS 



DATA TRANSLATION 

Tape/Disk • Disk/Disk • OCR 

Transfer data to and from hundreds of formats, data 
types, and word processors. Quick turnaround! Call to- 
day for a quotation to fill your special need. 

• Reformat databases to your specifications 

• Translate and print mailing lists 

• Quality word processor to word processor conversions 

• Authorized KEYWORD Service Bureau 

DataCopy Service of Texas 

4010 Cornell, Garland, TX 75042 (214) 272-7751 



Inquiry 566. 



DATA/DISK CONVERSION 



INSTANT REPLAY II 

Build Demos, Tutorials, Prototypes. Presentations, Music, 
Timed Keyboard Macros, and Menu Systems. Includes 
Screen Maker, Keystroke/Time Editor, Program Memorizer. 
and Animator. Rec'd Great Reviews! Simply the BEST. Not 
copy protected. No royalties. 60 day satisfaction money 
back guar. IBM and Compatb. $149.95 U.S.Chk/Cr. Crd. 
Demo Diskette $5.00 

NOSTRADAMUS, INC. 

3191 South Valley Street (ste 252) 
Salt Lake City, Utah 84109 (801) 487-9662 



Inquiry 572. 



DESKTOP PUBLISHING 



DISCOUNT CLONES 

• XT Turbo - $450. 

' AT 8/10 MHz - $1200. 

• Seagate ST225 20MB hard drhv with controller — $300. 

• Seagate SJ251 40MB 38ms — $495. 

• Hayes compatible 1200 baud modem — $99. 

• NEC multisync — $550. 

• Panasonic KX/P 10091 - $225. 

Automated Business Solutions 

5 Broadway, 2nd R, Freeport, NY 11520—516-379-3995 

30 day money back guarantee • 1 yr paits & labor warrantee 

Dealer Inquiries Invited. 



Inquiry 578. 



Disk/Disk • Tape/Disk • OCR 
Over 1,000 formats! 3V2, 5V4, or 8 inch disks; 
9 track mag tape; 10 MB Bernoulli cartridge. 
Data base and word processor translation. 
Specialists in Government Sensitive Data. Call 
for free consultation- 
Computer Conversions, Inc. 
We take the hassle out of data conversion . . . 
9580 Black Mtn. Rd., Ste J, San Diego, CA 92126 
(619) 693-1697 



Inquiry 567. 



Professional type Composition 

MP-XL— Hard-core typography and Typefonts for 
the HP LaserJet II, Okidata LaserLlne 6, or Ricoh 
PC 6000 Laser Printers. H&J, Indents, Tabs, 
Graphics, Va pt. leading, random mix of size & face, 
6-72 pt. fonts. MP-XL complete with 22 fonts, PI + 

Bkmn 6-24 pt $195. 

Many additional type faces available 6-30 pt. 
Micro Prlnt-X, Inc. 

P.O. Box 581, Bellinger, TX 76821 
(915) 365-2343 



Inquiry 573. 



CHIP CHECKER 

•74/54 TTL + CMOS • 8000 Nat. + Signetlcs 

• 14/4000 CMOS • 9000 TTL 

• 14-24 Pin Chips • .3" + .6" IC widths 
Tests/Identifies over 650 digital chips with ANY type 

of output in seconds. Also tests popular RAM chips. IBM 
compatible version $259. C128 + C64 version $159. 

DUNE SYSTEMS 

2603 Willa Dr., St. Joseph, Ml 49085 
(616) 983-2352 



Inquiry 579. 



DOCUMENTATION 



DISK/DISK or TAPE/DISK 
CONVERSIONS — AUTOMATICALLY 

Bought a new computer? Convert your data in just 1-2 days. 

SAVE TIME - SAVE MONEY! 
DISK/DISK or TAPE/DISK Conversions start as low as $15.00 
for IBM, CP/M, MS-DOS, UNIXV, XENIX & most other 
systems. (Apple, Macintosh, Commodore conversions start 
at $25.00) Call or write today for a cost saving quotation to 
fill your disk-to-disk or tape-to-disk data conversion needs. 

CREATIVE DATA SERVICES 

1210 W. Latimer Ave., Campbell, CA 95008 
(408) 866-6080 



Inquiry 568. 



COMPUTER ASSEMBLY MANUALS 

BIG BLUE SEED for IBM" BUILDERS: Parts list, place- 
ment diagrams, instructions for assembling 75 bare cards. 
Now includes 640K, Turbo & AT MthBds. $17.95. 

APPLE" BUILDERS NEED APPLE SEED: Instructions 
for assembling 85 Apple-compatible bare cards including 
the popular 6502 1 1 + and lie MthBds. $14.95. 

Both for $30. Bare cards available Check/MO/VISA/MC: 

NuScope Associates*, Dept b 

PO. Box 790 • Lewiston New Vbrk • 14092 
*A Division of Kosmic MicroTech Inc. 



Inquiry 574. 



HIGH PERFORMANCE LOW COST 

SINGLE BOARD COMPUTER has optimum features (or 
Monitor + Control Applications: 16 Chan A/D with Sample + 
Hold • 2 RS232/422 Ports • Buffered Digital I/O • Timer • 
5.25 x 8.0. OPTIONS: Resident FORTH 79 OS with Target Com- 
piler, Editor, Assembler, RamDisk + Auto Load/Start; 5 MHz 
8085 • 10 bit A/D • Bat. Backed Clock/RAM • Networking Ex- 
pansion Boards • IBM/CPM Support. 

The NEW E-PAC 10004- $249.00 
EMAC INC. 

PO BOX 2 42 CARBONDALE IL. 62902 618-529-4525 



Inquiry 580. 
BYTE 1987 Extra Edition • 



Inside the IBM PCs 247 



The Buyer's Mart- 



HARDWARE 



HARDW./POWER PROTECTION 



PROGRAMMER'S TOOLS 



Save on brownout protection! 

Line Conditioner keeps power constant whenever AC 
input power varies up or downl Prevents damage and 
downtime! Maintains constant output of 120V. This Is 
a stepped transformer system that has higher efficien- 
cy than CVT's and gives lower waveform distortion. 
Built-in spike protection I 

INDUS-TOOL 

730 W. Lake St., Chicago, IL 60606 
Phone 312-648-2191 



Inquiry 581. 



HARDWARE/ADD-ONS 



640 K Mot her Board UPGRADE 

640K memory without using an expansion stolt Our upgrades 
allow easy insertion of 256K cWps on the system board. 100% 
compatible. 30 day $ back guarantee. 2 yr wmty. Compaq Por 
table, Zenith 150, 151 & 161: $29 ($94 with memory). IBM- 
XT. 3270 & Portable: $39 ($104 with memory). IBM-PC. $49 
($114 wtih memory). $4 s/h. Site discount. Dealers welcome. 

Aristo 

16811 El Camino #21 3-D, Houston, TX 77058 
713/480-6288, 800/3ARISTO. 



Inquiry 582. 



Motherboard Clock $59 

SdeClock does not waste an expansion slot! The In- 
noventions' Dock/Calendar, installs in seconds: Just 
open the computer cover and snap it into place. Never 
enter the time and date again, SdeClock does it for 
you. Software and user replaceable battery included 
30 day $$ backgtd. 2 year limited warranty. $59 + $3 
s/h. Site discounts. Dealers welcome. 

Aristo 

16811 B Carina #213D, HouSon. TX 77058 
713/4804288, 800/3AFOSTO. 



Inquiry 583. 



HARDWARE/COPROCESSOR 



POWERLINE GREMLINS?? 
POWER FAILURES?? 

The MEIRICK STANDBY POWER SYSTEM 

is the TOTAL SOLUTION to your 

powerline problems. 

400 watt system - $449; 

800 watt system - $795 

MEIRICK Inc., POWER SYSTEMS DIV. 

Box 298, Frisco, CO 60443 303-668-3251 

1-800-323-5911 



Inquiry 587. 



INVESTMENT 



CAPTOOL!™ $59 

ortfolio manager. Stocks, bonds, funds, dpr. 

True ROI before/after taxes. DJ/Compuserve 

pricing. Batch & client features. Stock & bond 

evaluators. Beats all othersl IBM PC or PS/2. $3 S&H. 

ChkA/ISA/MC. 

TECHSEFWE, inc. 

RO. Box 70056* Bellevue, WA 98007 
800-826-8082 or 206-747-5598 



Inquiry 588. 



LAPTOP COMPUTERS 



Toshiba 1100+ 20 meg. Hard Drive 

A fJ featured External Hard Drive that attaches easily 
to your Toshiba. This COMPACT Drive has a Modem slot 
of its own— So you can have your Hard Drive and Modem 
too. . . Dos 2.1 or 3.2 compatible. Drive comes with 12 
\folt A.C. Adapter. Optional Battery pack and Cigarette 
Lighter Cord available. Retails for $1095.00 Dealer In- 
quiries Welcome. NEC Drive Available soon. IN STOCK 

801-364-8238 
Computer Expansion Products, Inc. 

3596 So. 300 W. #7, Salt Lake City, Utah 64115 



Inquiry 589. 



Modula-2 

REPERTOIRE is an integrated DBMS, win- 
dow/forms/menu generator, multi -window text editor, and 
expression evaluate* designed specifically for M2. Only $89 
with full (600K) source code and 320p printed manual. 
Complete manual for this and many other M2 tools available 
on free demo disk. MCA/ISA/AMEX/PO/COD. 

D A Jl I 4536 SE 50th * Portland > 0R 97206 
■ IVI I (503) 777-8844; BIX: pml 



Inquiry 593. 



• • NETBIOS Routines • • 

Network Master is a library of 60 routines which access 
NETBIOS functions. The routines are Invoked by com- 
plied programs to control the network. Rou ines support 
network names, resources and sessions with Wait and 
No- Wait options. Create your own transaction process- 
ing and program communication systems. Many com- 
pilers are supported. No royalties. Visa/MC $199.00 

Starlight Software 

2861 Central St., Evanston, IL 60201 
• (312) 864-9370 * 



Inquiry 594. 



PUBLIC DOMAIN 



$3 SOFTWARE FOR IBM PC 

Public Domain & User Supported Software. Hundreds 
to choose from, wordprocessors, data bases, spread- 
sheets, assorted games for all ages, communications, 
business, music, art, programming language and useful 
utilttites for making your computer easier to team. Most 
programs have documentation on the d sk. Write for your 
FREE catalog todayl 

BEST BITS & BYTES 

P.O. Box 5332, Dept-B, No th Hollywood, CA 91616 

(818) 893-6304 



Inquiry 595. 



PC MINI-SUPERCOMPUTER 

Up to 40 MIPS In Your PCI 

Fl your PC/XT/AT with 1 to 6 PC4000 boards for a high speed 
PCflISC system. The PC4000 uses the NC4016 RISC Engine 
which executes high level Forth in silicon. Each PC4000 is a 
general purpose parallel ccprnzasr that delivers speeds in the 
5 to 7 MIPS range. . .owr a 100 times faster than a PC, K & R 
standard C and Forth available. From $1295. 

SILICON COMPOSERS (415) 322-8763 

210 California Ave., Suite I, PaJo Alto, CA 94306 



LAPTOPS & ACCESSORIES 
FOR THE SMART BUYERS 

• Zenith 181 & 183 • Toshiba • NEC Multispeed 

• DATAVUE • EXTERNAL 51A" or ZW* Drive units 
(in Vfc ht. ease w/power & cable) for PC/XT/AT & 
compatibles • Brooklyn Bridge • Modems • 3 1 /2" 
int. drives 

Call for low pricing 

Computer Options Unlimited 

201-469-7678 (7 Days, 9AM-9PM Eastern time) 



QUALITY LB. M. SHAREWARE 

$3.95/Disk — 10 for $30.00 

P.C Write 2.7, DOS utilities, commercial unlock, 
8088 assembler DOS tutor, BASIC tutor, print 
utilities, games (7 disks), many more. Free listl 
MC/Visa. 

C. D. I. 

1-800-537-8000 ext. 25 

Box 238, 3925 Ravenswood Rd .., Ft. Lauderdale, FL 33312 



Inquiry 584. 



Inquiry 590. 



Inquiry 596. 



HARDWARE/MONITORS 



MANUFACTURING 



COLOR MONITORS 

SURPLUS SALE 

NEW, Hitachi 13" RGB, 

640 x 240, .31 mask pitch, IBM Compatible, 50 & 60 Hz 

Their Price: $450 Our Price: 8 150 

International Materials Exchange Inc. 

■ H a m-m 33 Agassiz St., 

I |m/l ^™ Cambridge, MA 02140 

617-497-2290 



Inquiry 585. 



THE FOREMAN 

• Inventory • B of M • Purchasing 

• Invoicing/Production/ Job Cost/MRP 

• Interface to Solomon Accounting 

• One time machine builds/Produc ion 

• Extensive cost control: Standard vs Actual 

• Release type orders + PO's accepted 

• Single user or Multi user versions available 
DCM COMPUTER PRODUCTS, INC. 

29226 Orchard Lake Rd., Suit© 290, Farmington Hills, Ml 48018 
313-737-0808 



Inquiry 591. 



RENT SOFTWARE $1/DISK 

Rent Public Domain and User Supported Software 



for $1 per dlskfull or we'll copy. IBM, Apple, C-64, 
Sanyo 550 and Mac. Sampler $5. VISA/MC. 24 hr 
info/order line. (619) 941-3244 or send #10 SASE 



(specify computer) Money Back Guarantee! 

Futu reSy stems 

Box 3040 CO. Vista, CA 92083 
office: 10-6 PST Mon.-Sat. (619) 941-9761 



Inquiry 597. 



HARDWARE/PERIPHERALS 



OKIDAT A— ACCESSORIES 



GM CAR COMPUTER READ-out 

• Read engine computer data 
Is sensor data reasonable? 
Are status switches set? 
Are any trouble codes set? 

• Make disk records of car packets 

• Let your PC be automotive. 
EXECUTIVE ELECTRONICS, INC. 

938 Main St., Dept B., Yarmouthport, MA 02675 
(617) 362-3694 



Inquiry 586. 



An Ukl for Your Okl! 

Compatibility of IBM Plug-n-Piay & versatility of 
Okidata Instruction Set at flick of switch. Easy to 
install. Complete— no other ROM needed. Utllltiy 
software included. Specify printer model. Add $3 
ship. NY res add sales tax. Oki 83. 92, 93— $49.95. 
Oki 192,193— $79.95. 

Uki Switch Corp. 

Depl. B, 326 Linden Race, West Hempstead, NY 11552 
212-685-8199 



Inquiry 592. 



• • FREE Catalog • • 

Collection of over 1700 programs collected on 160 disk- 
ettes, each diskette costs $3.75. Wide variety of pro- 
gramming, including: 

• Games • Word Processing And 

• Personal Finance • Lotus Clones Much 

• CAD Systems • Database Systems More!!! 

Call 1-800-843-5084 

People's Choice Software 

P.O. Box 3061, Warner Bobins, GA 31099 



Inquiry 598. 



248 Inside the IBM PCs • B Y T E 1987 Extra Edition 



The Buyer's Mart- 



SALES/MARKETING TOOLS 



SALES MAGIC 

Software solutions for better selling from 
MARKET POWER INC. 

computer Innovations 

We are proud to have helped these companies: Navistar, 
Westinghouse, Kodak, Chemical Bank, Chrysler, Canadian 
National Hotels, and more... 

Whether you are a company or an Individual, we can help 
you. Call or write. (916) 432-1 200 
101 Providence Mine Rd., Suite 106 A FREE 
Nevada City • California 95959 DEMO DISK 



Inquiry 599. 



SOFTWARE/CHURCH 



SCRIPTURAL ROSARY PROGRAM 

Computerized version of an ancient prayer provides 
convenient, interesting means of praying the rosary 
with accompanying scriptural meditations for each 
rosary bead. Excellent for introducing children to the 
rosary. For IBM PC XT, AT and compatibles. $11.95. 
Parochial school discounts available. 

Catholic Software Systems 

2207 Birch St. SE, Decatur, Alabama 35601 
(205-350-0789) 



Inquiry 605. 



SOFTWARE/ENGINEERING 



Engineer's Aide 

Join the Desktop Engineering Revolution! 

• Pipeline/Ductwork Sizing • Orifice/Control Valve Sizing 

• Pump/Fan/Compr. Sizing • Project Financial Analysis 

• Heat Exchanger Sizing • Conversion Calculator 

• Fluid Properties Library • Specification Writer 
Above programs In one stand alone Integrated 
package for $695. For IBM PC & Macintosh. 

Engineering Programming Concepts 

1-800-367-3585 (24 hr) 1-805-484-5381 (Ca) 



Inquiry 611. 



SOFTWARE/1-2-3 COMPILER 



THE BALER $495 

Convert worksheets into stand-alone applications. 
No Royalties. No Programming Required. 1-2-3 
Work-Alike. 1A & 2.01 Commands, Functions & 
Macros. Formulas & Structure Are Tamperproof . 
Generates Customizable BASIC Source Code. 30 
Day Money Back Guarantee. 

Brubaker Software 

Supporting 1-2-3 since 1983 
8825 N. County Ln. Rd. E., Lafayette, IN 47905 
800-327-6108 317-564-2584 



PowerChurch Plus® 

Fast, friendly, reliable church administration 
system. Full fund accounting, mailing lists, 
membership, contributions, attendance, 
word processing, accts. payable, payroll, 
multi-user support, and much more - all for 
$495 complete. FREE Demo version. 

F1 SOFTWARE 

P.O. Box 3096, Beverly Hills, CA 90212 

(213) 854-0865 



SIMULATION WITH GPSS/PC™ 

GPSS/PC" is an IBM personal computer implementa- 
tion of the popular mainframe simulation language GPSS. 
Graphics, animation and an extremely interactive environ- 
ment allow a totally new view of your simulations. 
Simulate complex real-world systems with the most in- 
teractive and visual yet economical simulation software. 

MINUTEMAN Software 

P.O. Box 171 A/, Stow, Massachusetts, U.S.A. 
(617) 897-5662 ext. 540 (800) 223-1430 ext. 540 



Inquiry 600. 



Inquiry 606. 



Inquiry 612. 



SOFTWARE/ACCOUNTING 



ACCOUNTING KIT $79.95 

Peanuts & Caviar is a Ml designed to introduce the principals of 
accounting and bookkeeping to non-accountants. It includes a 
resetabte general ledger software package ree. The kit consists 
of a 300 page book, wotk^eefe, homework, no/rework analysis 
and GL software. the software generates detailed reports, t al 
balance, income statement and balance sheet. IBM or compati- 
ble. Used in curriculums by Piatt College, Denver Public Schools, 
etc. $79.95. 

Learn-Ed Software 

8400 E. ILIFF, Suite 11, Denver CO 80231 
1-800-621-8385 ext. 736 



Church Package 

Parishioner Time, Talent and Treasure System pro- 
gram is written in modifiable dBASE source code. 
• Contributions • Disbursements • Ledger 
• Names with mailing labels 
• Personal information database. 
Requires dBASE II or III. PC-DOS/CPM-80 $200. 

Feller Associates 

550 CR PPA, Route 3, Ishpeming, Ml 49849 
(906) 486-6024 



Inquiry 601. 



Inquiry 607. 



ENGINEERING SOFTWARE 

You will save hours of development time with 
our library of integrated programs. 

• Graph Plotting • Equation Processing 

• Simultaneous Equations • Complex Arithmetic 

• Pop Up Calculator • Fourier Transforms 

• Top Down Designer • and more . . . 

For a FREE CATALOG: write 

Pulse Research 

Dept Eng 5, P.O. Box 696. Shelburne. VT 05482 
(802) 985-2928 



Inquiry 613. 



SOFT WARE/ A. I. 



SOFTWARE/FORTRAN 



Neural Nat Madol 

SIMNET s/w shows how a neural net model may be 
instructed to learn specific binary pattern associations. 
Once sys. has been taught the user may test its 
capability for generating proper output patterns in 
response to random input sequences. Also allows ad- 
justments of learning rate. $59.95 U.S. money order, 
cash or certified check. Needs IBM PC 256K, one 
floppy. 

Blair House Innovations 

P.O. Box 7, Belcarra Park, PortMoody, BC V3H3EI Ca ada 
604-939-5998 



Inquiry 602. 



SOFTWARE/BUSINESS 



ROMAR CHURCH SYSTEMS™ 

Membefship-61 fields plus alternate addresses; labels, letters, 
reports any field(s). Offering-256 funds; optional pledge; 
statements; post to 255x/yr. Finance-gen. ledger w/budget; up 
to 500 subtotals & 99 depts., month & YTD reports anytime 
for any month. Attendance— 8 service times. 250 events per 
service; 60 consecutive weeks. Available for floppy, 3V: & hard 
disk. Ad too short! Write for free 48-page guide. 

Romar Church Systems, Attn: BJB 

P.O. Box 4211, Elkhart, IN 46514 

(219)262-2188 



Inquiry 608. 



SOFTWARE/CULINARY 



FORTRAN 77 Extension 

EXTEND subroutines for MS, RM, IBM Pro com- 
pilers to control keyboard, monitor, text & graphics, 
DOS file & directory operations, parallel & serial 
I/O. Plus user graphics for CGA, EGA, VGA, 
HP7475A, TEK 4010, AutoCAD DXF & db save 
files. Both 8087 & non 8087 libraries pkgd for $149. 
Royalty free. 

Design Decisions, Inc. 

P.O. Box 12884, Pittsburgh, PA 15241 
(412)941-4525 



Inquiry 614. 



SOFTWARE/GAME 



MILP88-MIXED INTEGER LP 

A general-purpose system for solving mixed integer linear 
programs with up to 65 integers. 255 constraints 1255 
variables. Solves problems by applying the branch and 
bound method. Menu-driven with many useful features 
similar to LP88. Req. IBM PC, 192K, $149 with 8087 
support, user's guide. VISA/MC. 
EASTERN SOFTWARE PRODUCTS, INC. 
POB 15328, Alexandria, VA 22309 

(703) 549*5469 



The Professional Recipe Manager 

For IBM PCs 256K MS or PC/DOS. Combines 
recipe sizing, costing & nutritional computation 
$249.95 + $3 s/h check/AMEX/MC/VISA. 
(Mass add 5%). RECIPE MANAGER also 
available. $49.95. 

GEM ISLAND SOFTWARE 

P.O. Box 393B, Reading, MA 01867 

617/944-1382 



SMART STUD POKER 

Play Five- or Seven-card Stud Poker against two 
computer simulated players whose characters can 
be picked from five different character sets. You 
choose the ante, bankroll etc. Runs on IBM DOS 
2.0, color monitor. $15 if ordered before Dec. 31; 
regular $25. Send money order or check to: 

Kar Yung Software 

P.O. Box 14074, Torrance, CA 90503 



Inquiry 603. 



Inquiry 609. 



Inquiry 615. 



SOFTWARE/EDUCATION 



dFELLER Inventory 

Business inventory programs written in modifiable dBASE 
source code. 

dFELLER Inventory $150.00 

Requires dBASE II or III, PC-DOS/CPM 

dFELLER Plus $200.00 

with History and Purchase Orders 

Requires dBASE III or dBASE III Plus (For Stockrooms) 

Feller Associates 

550 CR PPA, Route 3, Ishpeming, Ml 49849 
(906) 486-6024 



Inquiry 604. 



THE GMAT COURSE (PC/XT/AT) 

Covers every type of exam question with instant feed- 
back, solutions, timed tests, personalized score 
analyses, math and grammar reviews. All material Is 
on the screen. Designed by MBA's, the program has 
improved students' scores by as much as 250 pts. In- 
cludes 5 disks + manual. $59.95 

COMWELL SYSTEMS, INC. 

P.O. Box 41652, Phoenix, AZ 85080 
(info & orders) (602) 869-0412 
(orders only) (BOO) 255-2789 



Inquiry 610. 



PC HYPER-CALCULATOR 

Pop-up MS-DOS emulatiom of HP-11C scientific and 
HP-12C financial calculators. Two-way transfer, program 
& data files, alpha prompts, hex/oct/bin arithmetic, 100 
registers, 1000 program steps. Free 8087 version, utili- 
ty programs. $49.95 + $3 s&h. 
SUNDERLAND SOFTWARE ASSOCIATES 
P.O. BOX 7000-64 
REDONDO BEACH, CA 90277 
CALL TOLL FREE 800-628-2828 ext. 502 



Inquiry 616. 
BYTE 1987 Extra Edition • Inside the IBM PCs 249 



The Buyer's Mart- 



SOFTWARE/GAME 



WOULD YOU UKE TO KNOW? 

Your I.Q.? Memory Level? Response Time? 
Coordination? Visual Perception? 

Expand your mind with MENTOR 7 "— software that lets 
you explore your hidden talents. 58 psychometric ex- 
ercises, Incl. 25 I.Q. tests. 
IBM PC/Compatibles • 256K • $49.95 • VISA/MC 

Heuristic Research, Inc. 

3112-A West Cuthbert Ave., Midland. TX 79701 
800-443-7380 (In TX, collect 915-694-5936) 



Inquiry 617. 



SOFTWARE/GENERAL 



DO YOU STILL USE DOS? 

QUICK LOOK, the easiest, most powerful DOS 
shell ever, is here! QL can Edit, Copy, View, Move, 
Erase, Hide, Unhide, Rename, Find files, and more 
with just a SINGLE KEYSTROKE. Scrap DOS and 
become a power computin' dynamo of digital 
dominance. QL has a 30-day money back 
guarantee and is not copy protected. For more in- 
fo call (513) 429-4806 or write 

CDS,3989 Col. Glenn Hwy.. Dayton, OH 45324. 
QUICK LOOK Only $34-95 



Inquiry 618. 



SOFTWARE/GRAPHICS 



SOFTWARE/GRAPHICS 



PC-KEY-DRAW TRY IT $15 

Comprehensive, high-power graphics editor, CAD, 
paint, slide show program. Over 1 60 standard func- 
tions plus macros, 64 pages/layers, zoom printer. 
600+ patterns, novice/expert modes. $15 includes 
manual, software, quick ref. card. Register $100 
for support, updates complete printed manual, 
from library disks. Shareware. Version 3.27. 

P.O. Box 595 
OED WA RE Columbia, MD 21 0450595 
(301) 997-9333 



Inquiry 623. 



CGA-+ Hercules™ Graphics 

Mode-MGA'" allows you to use business graphics, games, 
BASlCAgraphics and other CGA specific software with your 
Hercules'" Monochrome Graphics adaptor and monochrome 
monitor. Works with all CGA programs. $79.95 (+ $5 s&h) 
for the 3k-TSR version. 30-day money back guarantee. Call 
or write: 

T.B.S.P. Inc. 

2265 Westwood Blvd., Suite 793, Los Angeles, CA 90064 
(213) 312-0154 



Inquiry 624. 



SOFTWARE/LANGUAGES 



FORTRAN Power Tools™ 

Tools to help you dissect, debug, and document programs 
and more. Indispensable for large programs and programs 
written by others. These tools can generate detailed x-ref 
maps, produce tree diagrams of global routine calls and lists 
of routines appear in the programs, print text and output files, 
extract routines, combine fi es, do string search, etc. IBM PC 
with DOS 2.0-K 
Introductory price $119.95 +$3.50 S&HVISA/MC/MO/Check 

PJN International 

P.O. Box 200243, Austin, TX 78720 
(512) 258-1235 



Inquiry 629. 



SOFTWARE/LOANS 



LOAN MAKER™ $89.95 

Godfather of Loan Caiculation & Amortization Programs. In- 
stantly computes results on changes in Loan Parameters. 
Makes amort schedules for Level? Specified Amt., & Decreas- 
ing Payments for any time period. Balloon Payments. 
Save/Recall/Delete schedules. Printer options. PC/XT/AT coCTJ- 
pat. Demo $2; demo + manual $20, credited on program. 
Visa/MC/AmEx/chk. 

Powder River Properties, Ltd. 

1510 Stone St., Falls City, NE 68355. 402/245-2029 (24 hr) 



Inquiry 630. 



SOFTWARE/MEDICAL 



PC TECHNICAL GRAPHICS 

TEKMAR is a graphics library for the EGA or Tecmar 
Graphics Master. Similar to PLOT-10, includes WINDOW, 
VIEWPORT, AXIS. Support for HP, HI plotters. Curve 
fitting, completeplotting program. Log, semi-log, multi- 
axis, 3-D, contours. Jerry Pournelle (Aug 86 Byte): "As 
good as any I have ever seen..." Demo disks, literature 
available. 

Advanced Systems Consultants 

21115 Devonshire St. #329, Chateworth, CA 91311 

(818) 407-1059 



Inquiry 619. 



35mm SLIDE FROM YOUR PC 

COMPUTER SLIDE EXPRESS converts graph 
files produced on the IBM PC into brilliant 35mm 
color slides with color resolution 400% better than 
your monitor. Leave your printouts behind. Use 
high resolution color slides up to 4000 line. 
COMPUTER SLIDE EXPRESS $9/slide 

VISUAL HORIZONS 

180 Metro Park, Rochester, NY 14623 
(716) 424-5300 



Inquiry 625. 



SOFTWARE/HOME/BUSINESS 



MEDICAL OFFICE MANAGER 

• Patient Accounting • Mail List 

• Claims Preparation • Diagnostic Coding 

• Schedules Appointments • Tracks Physician Referals 

• PC/XT/AT/Comp. • Hard disk required 

• Automatically bills patients and insurance companies 

• Statistical analysis for practice 

GB Consulting (301) 730-3450 

1000 Century Plaza Suite 214, Columbia, MD 21044 



Inquiry 631. 



SOFTWARE/MEMORY 



FPLOT PEN PLOTTER EMULATOR 

Use your dot matrix or laser printer as an HP pen 
plotter, hikes output. Vary line thickness. Includes 
VPLOT virtual plotter utility to capture plotting com- 
mands. Supports NEC P5/P6/P7, IBM Proprinter, 
Epson LQ/MX/FX/RX, HP Laserjet. Uses Hercules, 
CGA, or EGA for screen preview. $60 + $4 s&h. 

HORIZON SOFTWARE 

Suite 60 5, 24-16 Steinway St., Astoria, NY 11103 



Inquiry 620. 



AUTO-PILOT 

If your home/office requires you to remember 
countless assignments/tasks, put these respon- 
sibilities on AUTO-PILOT. Ideal for small businss & 
busy homeowners. Easy to use. Reminds you of 
repeating/one-time events. PC/XT/AT/comp $29.95 
CheckA/isa/MC. 

Advanced Concepts 

P.O. Box 246, Ironia, N.J. 07845 

1-800-628-2828 X 655 



Inquiry 626. 



SFTWRE INVENTORY/P.O.S 



Expanded Memory Software 

Use the extended memory you already have 
as Lotus-style expanded memory. LIMSIM 
Version 2 provides the expanded memory 
(EMS) interface to ordinary 286/386 extend- 
ed memory $65 +$5.00 S&H. Source $30 
extra. 30 day money back guarantee. 

Larson Computing 

1556 Halford Ave. #142, Santa Clara, CA 95051 



Inquiry 632. 



SOFTWARE/PRINTER 



GRAPHICS PRINTER SUPPORT 

AT LASV Use the PrtSc key to make quality scaled 
B&W or color reproductions of your display on any 
dot matrix, inkjet, or laser printer. GRAFPLUS sup- 
ports all versions of PC or MS-DOS with IBM (incl. 
EGA), Tecmar, and Hercules graphics boards. 
$4995. 

Jewell Technologies, Inc. 

4740 44th Ave. SW, Seattle, WA 98116 
800-628-2828 X 527 (206) 937-1081 



Inquiry 621. 



FORTRAN PROGRAMMER? 

Now you can call 2-D and 3-D graphics routines 
within vour FORTRAN program. 

GRAFMATIC: 75 callable routines for 
screen output. $135. 

PLOTMATIC: Pen plotter driver. $135. 
For the IBM PC, XT, AT and compatibles. We sup- 
port a variety of compilers, graphics boards and 

piotWrS ' MICROCOMPATIBLES 

301 Prelude Drive, Dept. B 

Silver Spring, MD 20901 

(301) 593-0683 



Inquiry 622. 



SUPER RETAILERS Is HERE! 

Find out why over 500 purchases a second are made 
on the finest point of sale program. Ultra-flexibility-cash, 
returns, credit, depts . . . Control your bus. Keep track 
of your money. Inventory module - $99. Become a Super 
Dealer. Modules far acctng integrate a tomat'ically. 60 Day 
Money Back Guarantee. VISA/MC. IBM & compats. 

PMC 

100 East 2nd Street, Mineola, NY 11501 
800-DIAL-PMC in NY 516-294-1400 



Inquiry 627. 



SOFTWARE/LANGUAGES 



DRUMA FORTH-83 

Developed for in house use. No 64K limitation. 64K 
speed & compactness. Strict '83 STANDARD. 

• Rom code, headerless code, separated 
variables 

• Assembler, DOS interfaces 

• Editor, examples, on disk documentation 

• IBM PC/XT/AT, Clones, DOS 2.0+ 

• Full Pkg. $79. Demo $10. S&H $2. 

DRUMA FORTH-83, DRUMA INC. 

P.O. Box 610097, Austin, TX 78761 512-323-0403 



Inquiry 628. 



PRINTER GENIUS 

Powerful memory resident printer control, from pop-up 
menus or within documents • Print spool to disk • 
Background print • Directory search & file browse • Edit 
& print small text • Redirect output to any media or 
printer • Superb documentation • Preset for all dot 
matrix and laser printers • Completely flexible • PC MS- 
DOS • $69 + $4 S/H -VISA/MC 

Nor Software Inc. 

527 3rd Ave., Suite 150, New York, NY 10016 
(212) 213-911B 



Inquiry 633. 



SOFTWARE/REAL ESTATE 



Investment Analysis 

No one makes analyzing income producing pro- 
perty easier (free demo) with such price- 
performance comfort at $170. Stand alone, fully 
compiled, loan amort. &deprec. schedules, 1986 
tax changes. Cash flow & detailed sale analyses 
uncover buy/holdteell/refin./exch. decision insights. 

The SOFT ESTATE 

660 Stanford Lane, Buffalo Grove, IL 60089 
* * 312/259-6301 * * 



Inquiry 634. 



250 Inside the IBM PCs • BYTE 1987 Extra Edition 



The Buyer's Mart- 



SOFTWARE/REAL ESTATE 



SOFTWARE/SCIENTIFIC 



STATISTICS 



* * Real Estate Mortgage Program * * 

For the professional. Qualify clients for home purchases and 
mortgages. Print detailed report for your c lient. Set default 
values from menu. Store client's data todisk file. Load data 
from disk for updates. From income program calculates, max 
debt, taxes, insurance, purchase price, monthly payment, 
morlgage amount, and more. All inputs can be edited or re- 
calculated. To order send $49.95 + $2 s/h. Other programs 
available. HOME MORTGAGE PROGRAM For the infrequent 
user $24.95 + $2 s/h. MASTER DIRECTORY Generates list 
of programs on disk $15.95 + $2 s/h. 

THE SOFTWARE HUT 

P.O. Box 613. Bantam, CT 06750 (203) 567-4992 



Inquiry 635. 



SOFTWARE/SCANNERS 



TURN WordPerfect™ INTO A SCIENTIFIC 
WORD PROCESSOR ONLY $75 

Display & print complete math & Greek symbol sets. 
Includes display chip, printer downloading program, 
& free custom printer drivers & macros with proof of 
purchase of WordPerfect. Call for flyer, list of sup- 
ported hardware, & ordering info. 
SCIENTIFIC WORD PROCESSING ENHANCEMENTS 
8320 N. Lockwood Ave., Skokie, IL 60077 
(312) 677-4270 



Inquiry 641. 



THE SURVEY SYSTEM 

An easy-to-use package designed specifically for 
questionnaire data. Produces banner format, cross 
tabs & related tables, statistics (ind. regression) & bar 
charts. Codes and reports answers to open-end ques- 
tions. All reports are camera-ready for professional 
presentations.. CRT interviewing option. 
CREATIVE RESEARCH SYSTEMS 

1649 Del Oro, Dept. B, Petal uma, CA 94952 

707-765-1001 



Inquiry 647. 



SOFTWARE/SORT 



Optical Character Recognition 

Stop retyping: PC-OCR" 1 software will convert typed or 
printed pages into editable text files for your word pro- 
cessor. Works with HP ScanJet, Canon and most other 
scanners. Supplied with 15 popular fonts. User trainable: 
you can teach PC-OCR" to read virtually any typestyle, 
incl. foreign fonts. Proportional text, matrix printer output, 
Xerox copies OK. $385. Check/VISA/MC/AmExp/COD 

Essex Publishing Co. 

P.O. Box 391, Cedar Grove, NJ 07009 
(201) 783-6940 



Inquiry 636. 



SOFTWARE/SCIENTIFIC 



OPT-TECH SORT/MERGE 

Extremely fast Sort/Merge/Select utility. Run as an MS- 
DOS command or CALL as a subroutine. Supports 
most languages and filetypes including Btrieve and 
dBASE, Unlimited filesizes, multiple keys and much 
more! MS-DOS $149. XENIX $249. 

(702) 588-3737 

Opt-Tech Data Processing 

P.O. Box 678 - Zephyr Cove, NV 89448 



Inquiry 642. 



STATISTICS CATALOG! 

if you need statistics for IBM PC or Apple II, call us 
and let our technical advisors help you find the 
statistics programs you need. 
Write or call now to get a FREE catalog of statistics 
and quality control software. 

HUMAN SYSTEMS DYNAMICS 

9010 Reseda Blvd., Ste. 222 

Northridge, CA 91324 

(800) 451-3030 (818) 993-8536 (CA) 



Inquiry 648. 



SOFTWARE/TOOLS 



Data Acquisition & Analysis on PC s 

* FOURIER PERSPECTIVE II Advanced Digital Sipal Anatab. 

* PRIME FACTOR FFT subroutine library. Call from Turbo Part, C. 
Fortran, Basic. Up to 65,520 data points. 2D interface available. Rec- 
tangular FFTs now possible in a multitude of dimensions. 

* 2 & 3D Scientific Graphic packages with plotter support from Golden 
Software. 

* Data Acquisition & Control Boards form MetraByte, Analog Devices. 
Burr-Srown, Strawberry Tree. National Instnjments, Contec, & Tecmar. 

* Data Acquisition & Analysis Software— Labtech Notebook, Asyst, 
UnkatScope. Lotus Measure with 1-2-3/Sympriony, & QuinrvCuitis. 

Call for FREE Application Assistance & Technical Literature 
LOW PRICES-Satisfaction GUARANTEED 

Alligator Technologies — (714) 722-1842 

P.O. Box 11386 Costa Mesa, CA 92627 



What is Turbo Ghostwriter? 

An Application Generator for Turbo Pascal"' 
Complete Database in Minutes! 
Draw & paint screens with our tools. Tell Turbo Ghostwriter how to 
retrieve your data. Screen Editor/Painter, FABS PLUS B Tree File 
Manager. Multiple fieWsfcey, Multiple keys/index, Application Generator 
produces Context Sensitive Help & Documentation. All for only $200! 
KkJay money back guarantee. MCA/ISA/PO/CODCompany Check. 
In NC (919) 782-7703. 

ASCII-Automated Software Concepts International, Inc. 

3239 Mill Run. RaJeigh. NC 27612^135 
Info/orders call 800-227-7681 



Inquiry 637. 



Inquiry 643. 



RATS! Version 2.1 

Best selling econometrics program. Over 4000 copies sold. 
OLS. 2SLS, logit, probit and much more! Forecasting with 
ARIMA. VAR. Exponential smoothing. Model simulations. 
Support for daily/weekly data. High-quality graphics to 
screen, plotter, printer. $200-$300. VISA/MC. Demo 
available. 

VAR Econometrics, Inc. 

P.O. Box 1818, Evanston, IL 60204-1818 
(312) 864-8772; (800) 822-8038 



Inquiry 649. 



FAST FOURIER TRANSFORMS 

• Subroutine for integer data: 1024 points in 
109 millisec on 8 MHz AT. 

• Subroutine for floating-point data: (with 80287) 
1024 points in 700 mS. 

• Call from MS FORTRAN, C, QuickBASIC, 
assembler, Turbo Pascal. Great docs. 

• Check or PO: $175 ea/ $275 for both. 

J. W. Hartwell & Associates 

File. 4. Box 1540. Hillsborough, NC 27278 
(919) 732-7951 



Inquiry 638. 



LANbase TOOLBOX 
FOR TURBO PROGRAMMERS! 

Share a database written in Turbo Pascal over a Local Area Network. 
Must have Turbo version 3.0, DOS version 3. 1 , and a Local Area Net- 
work that supports the file sharing. Some procedures require Microsoft 
Networks to be running. LANbase ToolBOX sells tor $99.95. LAN- 
base TodBOX PLUS is Database Toobox compatible. This alows 
previous programs wrinen using the Database Toolbox to be shared 
over a network. LANbase ToolBOX PLUS sells for $24995 and in- 
cludes the Database ToolBOX. VISA and MasterCard accepted. 

Night Owl Computer Services 

Software & Consulting 

P.O. Box 138037. Toledo. OH 43613 (419) 474-9246 



StatPac Gold™ 

Voted World's Best Statistical & Forecasting Package 
in 1987 by PC World Magazine readers. Six times 
more votes than the next closest competitor. More 
comprehensive & easier to use than all others. Get 
the facts. Call now for your FREE brochure. 
1-800-328-4907 

Walonick Associates, Inc. 

6500 Nicollet Ave. S., Minneapolis., MN 55423 
(612) 866-9022 



Inquiry 644. 



Inquiry 650. 



Do You Need to do This 
on Your PC? 



614 1/8 cu in 
/ 

1.2 liter per sec 

= 8.386421 sec 



LascauxlOOO, 'The Intelligent Calculator. 
(For IBM PC's) Verify logic of calculations. Reduce steps 
by 50%. Extensive table d physical constants. Easily 
customized. Much more! $59.95 Demo disk $1. 
LaSCaUX Graphics 3220 Steuben Ave. 
Bronx. NY 10467 (21 a 654-7429 



Inquiry 639. 



SCREEN MANAGER 

SAVE TIME! Powerful Screen Designer and Data 
Entry Manager increases your productivity! Inter- 
faces to most languages. BASIC, C, FORTRAN, 
COBOL, PASCAL, PLM86, ASSEMBLER. Not a 
Code Generator! No Royalties. $79. Visa/MC 
FREE DEMO DISK 

The West Chester Group 

P.O. Box 1304, West Chester, PA 19380 

(215)644-4206 



Inquiry 645. 



Spreadsheet Statistics 

NEW! 23 comprehensive statistics and forecasting 
modules for analyzing LOTUS worksheets. Low cost 
$24.95 each. Easy to use. Includes tutorial. Basic 
and advanced statistics with graphics and many 
user-definable options. Compare. Free brochure. 

Walonick Associates, Inc. 

6500 Nicollet Ave. S., Minneapolis., MN 55423 
(612) 866-9022 



Inquiry 651. 



STATISTICS 



TERMINAL EMULATORS 



ORDINARY/PARTIAL 

DIFFERENTIAL EQN 

SOLVER 

FOR THE IBM PC & COMPATIBLES 

MICROCOMPATIBLES INC. 

301 Prelude Dr., Silver Spring, MD 20901 

(301) 593-0683 



Inquiry 640. 



STATA 

Statistics and graphics join to make STATA the 
most powerful package for the PC. No comparable 
program is as fast, friendly, and accurate. $20 
Demo. Quantity discount available. Call toll-free for 
more information. AX/VISA/MC. 

1-800-STATAPC 

Computing Resource Center 

10801 National Boulevard, Los Angeles, CA 90064 
(213) 470-4341 



Inquiry 646. 



EMU— Terminal Emulator 

Emulates DATA GENERAL Dasher terminal models 
D200, D210, D214, D215, D220, etc. on IBM PC, 
XT, AT, PCjr, PS/2, and true compatibles. 50 to 
19,200 baud even during file transfers. Satisfaction 
Guaranteed. $95 cash price. Custom emulators also 
available. 

Rhintek, Inc. 

P.O. Box 220, Columbia, MD 21045 
(301) 730-2575 



Inquiry 652. 
BYTE 1987 Extra Edition • Inside the IBM PCs 251 



The Buyer's Mart- 



TESTING/DOCUMENTATION 



UTILITIES 



WORD PROCESSING 



TESTING/DOCUMENTATION 

Quality presentation is a key factor in successfully 
marketing your products. Our professional services 
include: 

• Test & evaluation 

• Technical writing 
Special services/fees for Shareware developers. For 
FREE quotes or further information, contact: 

DOCUGRAPHICS 

P.O. Box 6066— Suite L108, Santa Maria, CA 93456 



• Camera-ready copy 

• Finished manuals 



Inquiry 653. 



UTILITIES 



STILL RIVER SHELL 

Visual shell for PC/MS-DOS. Point & 
Shoot Power. V1.82. Only $9 for 
shareware diskette. $39 manual & 
diskette. MC/Visa accepted. 
Bob Howard 

PO Box 57, Still River, MA 01467 
617-456-3699 



Inquiry 654. 



RECORD/PLAYBACK KEYSTROKES 

TOTAL RECALL records an unlimited number of 
keystrokes and plays them back after a failure or mis- 
take. Also for demos, running interactive programs 
in batch, or repeating keystrokes. 3 playback speeds 
plus ACTUAL for timing sensitive programs. Built- 
in edit. PC/XT/AT Compat. $79 VISA/MC 30 day 
guarantee. 

COMPUTER FOUNDATIONS 

2604 Elmwood Ave., Suite 320, Rochester, NY 14618 

(716) 586-9756 



Inquiry 655. 



Source Level PC Debugger 

Maximum performance debugger has window 
oriented display, complete symbolic support, easy 
to use command interface and powerful function 
keys. We challenge you to find a better debugger! 
$185 Call to order: 

Computer Dynamics Sales 

• (803) 877-8700 • 

107 South Main St., Greer, SC 29651 



Inquiry 656. 



Screen Maker 

Create text screens with extended character set 
in a frac ion of the time using our full screen editor. 
Then save them as source code in one of three 
languages (BASIC, C, TURBO PASCAL) or a user 
defined language. It's not a binary screen image. 
Requires 256K RAM, IBM PC or compatible. Only 
$39.95 + S/H. Call or send to: 

DESIGN SOFTWARE 

P.O. Box 1017, Jackson, NJ 08527 

201-928-9654 



Inquiry 657. 



DATA MANIPULATION Xchange 

Powerful pattern rnatehing data manipulation 
language quickly solves data interchange problems. 
Define input/output of desired data structures. Reads 
serial & proprietary files including Multimate, Word- 
perfect, dBase, DCA/RFT, MS-Word and hundreds 
more. Xchange $495.00 + options. 

Emulation Technologies 

1501 Euclid Ave., Cleveland, OH 44115 
216-241-1140 



Inquiry 658. 
252 Inside the IBM PCs 



PEP Your Data to MS-DOS! 

PEP ("Printer Emulation Package") is a unique soft- 
ware product which makes your MS-DOS system ap- 
pear to be an intelligent serial printer. Converting your 
data from another operating system is as easy as prin- 
ting itl Diskette plus 90 page typeset manual, $64.95 
U.S. (Not copy protected.) Specify 5V» or 3V2 inch 
diskette size; add $5 for both formats. 

Intelpro 

13 Saratoga Dr., Kirkland, Quebec, Canada H9H 3J9 
(514) 694-6862 



Inquiry 659. 



MS-DOS System Utilities 
For PCs and Z-100's 

WORD Wizzard $19. Full Screen Editor 

FILE Wizzard $9. Directory Utility 

COM Wizzard $9. Command Line Editor 

KEY Wizzard $9. Keyboard Utility 

MICRO WIZZARD SOFTWARE 

199 Buckwood Dr., Hyannis, MA 02601 
(617) 8-1430 



Inquiry 660. 



COPY AT TO PC 

The 1 .2mB drive has long been known to READ but NOT 
reliably WRITE on 360kB floppies. With "CPYAT2PC" n ' 
1 .2mB drives CAN reliably WRITE 360kB floppies saving a 
slot for a second hard disk or backup tape. "CPYAT2PC" 
(Not Copy Protected) offers 'the preferable SOFTWARE 
SOLUTION.' ONLY $79 +$4 S/H VISA/MC/COD UPS B/R 

MICROBRIDGE COMPUTERS 

655 Skyway, San Carlos, CA 94070 

Order toil free 1-800-621-0851 x777 

415-593-8777 (CA) 212-334-1858 (NY) 

TELEX EZLNK 62873089 Dealer inquiries invited 



Inquiry 661. 



$59.95!! 

Buy the RED Utilities now! Programs include: 
Disk cache to speed hard disk. Printer spooler. 
Batch file compiler. Path command for data 
files. Wild card exceptions. Protect hard disk 
from accidental formatting. Sort directories. 
Over 10 more programs. IBM PC. Visa/MC. 
The Wenham Software Company 
5 Burley St., Wenham, MA. 01984 (617) 774-7036 



Inquiry 662. 



WORD PROCESSING 



HEBREW / GREEK / ARABIC 

Russian and European Languages. Full 
featured, multi-language word processor sup- 
ports on-screen foreign characters with no hard- 
ware modifications. $350 (dot matrix) or $500 
(laser) + $5 s/h. Or send $15 + $4 s/h for 
demo. Req. 512KVgraphics 

Gamma Productions, Inc. 

710 Wilshire Blvd., Suite 609, Santa Monica CA 90401 
(213) 394-8622 



Inquiry 663. 



DuangJan 1.3 

Bilingual word processor for English and one of 
these: Armenian, Bengali, Euro/Latin, Greek, Hin- 
di, Khmer, Lao, Russian, Tamil, Telugu, Thai, Viet, 
.... or create your own language with font editor. 
$69 + $ 4 s/h ( + $ 1 for.) LaserJet + $49. Demo $5. 
IBM compatibles. 

MegaChomp Company 

3524 Cottman Avenue, Philadelphia, PA 19149-1606 
(215)331-2748/8138 



Inquiry 664. 
• BYTE 1987 Extra Edition 



PC-Write™ Shareware Ver. 2.71 

Fast, full featured word processor/text editor for 
IBM PC. With spell check, screen clip, mailmerge, 
split screen, ASCII files, macros. Easy to use. Sup- 
ports 400 printers - LaserJets- and PostScript. 
Software, User Guide, and Tutorial on 2 disks for 
$16. Try it, then register with us for only $89 and 
get User Manual, 1 year tele-support, newsletter 
and 2 upgrades. 90-day guarantee. VISA/MC. 

QillckSOfM -800-888-8088C ALL TOD A Yl 
219 First N., tf224-BYTC, Seattle, WA 98109 



Inquiry 665. 



Advertise 
YOUR 

computer 
products 

the smart way! 
+ 

For as little as 

$375 

in 

THE 

BUYER'S 

MART 

For more information 

and a 

Free Brochure 

Call 

Mark Stone 

at BYTE 
603-924-3754 



BYTE Advertising 

One Phoenix Mill Lane 

Peterborough, NH 03458 



FREE! 

Turn-key 
PC Systems i 
Handbook ■ 



NEW! 






K.-r. 



Save Time and Money 

Over 1000 Hard-to-find J 

Hardware and Software/ 

Items of Spocial 

Interest to Technical 

PC Users: $3& 

• RS 232/IEEE 4B8 Netwoiks 
■ Stepping & Servo 

Motor Controls 

• Ruggedized PC's 

• Rack Mtg. 80286 & 80386 

• laboratory Automation 
. 1 MHZA/O 

> Digital Scopes to 200 MHZ 

• High Speed Bus Adapters 

• Waveform Synthesizes 

• Data Loggers 

• PC Bus Expansion Chassis 

• And Much More 



S588H 



A How-to-Handbook that 
enables you to configure the 
BEST products from the world's 
leading PC hardware and 
software vendors into risk free 
turn-key system solutions that 
meet your needs. 

Toll Free Hotline for application 
assistance and convenient one 
stop shopping at competitive 
prices. 100% Satisfaction 
Guaranteed. 



Call or write for a FREE rTVTfV-THTV-y-v-v->f->-*rK, 

tUO"/OO"0TOli0i P.O.Box 9565. New Haven, CT 06536 
{9:00 AM lo 5:00 PM EST) Fax: 203-766-5023 Telex: 9 1 02501037 



We Speak Video 

• TTL RGB to composite 
monochrome 

• TTL RGB to Analog RGB 

• RGB to NTSC Composite 
Color 

• Composite Color to Analog 
RGB 

• Composite Video to Hard 
Copy 

• Hi-Res Monitors and Display 
Cards 

• Cameras and Image Capture 

• Free catalog— new edition 

/KSX© COMPUTER 

17352 YORKSHIRE AVE., 
YORBA LINDA, CA 92686 

(714) 528-1025 

8-6 Mon-Frl 



DATA ACQUISITION ID GO 

INTERFACE FOR ANY COMPUTER 


FREyBMSOFTWARE 


1 [PL-IOOOl 


Connects via RS-232. Fully IBM com- 
patible. Built-in BASIC. Stand alone 
capability. Expandable. Battery 
Option. Basic system: 16 ch. 12 bit 
A/D, 2 ch. D/A, 32 bit Digital I/O. 
Expansion boards available. Direct 
Bus units for many computers. 

(201) 299-1615 
P.O. Box 246, Morris Plains, NJ 07950 


ELEXOR 



Circle 64 on Reader Service Card 



Circle 27 on Reader Service Card 



Circle 76 on Reader Service Card 



BAR CODES 
MADE EASY 



S-Z-fXeADKir 



PERCON® E-Z-READER 

FAST • ACCURATE • RUGGED 

NO SOFTWARE CHANGES with PC/XT/AT and 
PS/2. AT&T 6300/7300. TeleVideo 905/955/ 
PCS], Wyse 30/60/85/PC/AT. Kimtron KT-7/PC. 
Link PCTerm/MC I IMC3 & DEC VT220 keyboards, 
multi-user RS-232 interfaces. • Immediate ship- 
ment • Free phone support • 2-year warranty • 
Bar code printing software available 

Details or Questions? Call us. 

f503) 344-1189 

2190 W I irn Ave . Eugene, OR 97402 
A LEADER IN BAR CODE READER ENGINEERING 



PERCON 



Products & Solutions for 
Electronic Information Delivery 

• Digital Audio Record & Playback 
Systems 

• Graphics Genlock 

• CD-ROM Controllers 

• CD-ROM & WORM Applications 

• Optical Retrieval Systems 

• Image Compression/Expansion Systems 
for Document Delivery 

• LAN for Optical Media 

• Multi-drive Optical Storage Units 

• CD-ROM Premastering 

Online is an authorized IBM Value Added Dealer 
(VAD) and Advanced Product Dealer (APD). 
OEM AND DEALER INQUIRIES ARE INVITED 

LINb Corporation 

Dept. B-2, 20251 Century Blvd., 
Germantown, MD 20874 
(800) 922-9204 • (301) 428-3700 
• Telex; 3746439 • Fax: (301) 428-2903 

IBM is a registered trademark of the International 

Business Machines Corporation 



CONVERT YOUR PC 
PARALLEL PORT TO SERIAL 



B&B "Parallel to RS-232 
Serial CONVERTER" 
Model 232PSC 
Add another serial port 
on your PC, easily and 
economically. B&B's 
Model 232PSC connects 
directly to most PC 
compatible parallel 
ports; gives you a serial 
output; works with practi- 
cally any serial printer. 

Parallel to serial CON- 
VERTER comes com- 
plete with AC power 
supply; can be program- 
med for 150-9600 Baud, 
Parity, 7 or B Bits, Num- 
berot Stop Bits, and Busy 
input (pin 4 or pin 20). 





SAME DAY SHIPMENT! 
MONEY BACK GUARANTEE 
FROM MANUFACTURER! 
BUY DIRECT AND SAVE! 



Wfite or call for FREE B&B ELECTRONICS 
MFG. CO. CATALOG TODAY! Terms: Visa. 
MC. cash orders postpaid, P.O.'s Irom fated 
firms accepted. Illinois residents add 6'/«% 
stale sales tax. 

B electronics 
MANUFACTURING COMPANY 

1524K Boyce Memorial Drive • R0. Box 1040 
Ottawa. IL 61350 815-434-0846 



Circle 171 on Reader Service Card 



Circle 155 on Reader Service Card 



Circle 43 on Reader Service Card 



"D" SIZE PLOTTER 



*2295 00 
RETAIL 




■ Model PC 3600 
1 Repeatability .001" 

Speed at 7" Per Second 

Vacuum Paper Hold Down 

1 High Resolution Circles: Suitable for 
PCB Artwork 



(415) 490-8380 zefhcon 

4423 enterprise st. • fremont, ca 94538 



UPS - QEPOT 



TOTAL POWER PROTECTION 
FROM 200 VA TO 56 KVA 

THE POWER PROVIDED BY THE UTILITY COMPANY IS 
NOT ALWAYS CONSTANT. VOLTAGE VARIATIONS 
BEYOND THE ACCEPTABLE OPERATING LIMITS OF 
ELECTRONIC EQUIPMENT. VOLTAGE TRANSIENTS, 
LINE NOISE AND UNEXPECTED POWER OUTAGES CAN 
RESULT IN ALTERATION AND LOSS OF DATA, DAMAGE 
TO COSTLY ELECTRONIC CIRCUITS AND HIGH 
EMERGENCY REPAIR COSTS. 

PREVENT THIS FROM HAPPENING WITH THE UPS-TECH 
UNINTERRUPTIBLE POWER SYSTEMS. 



UPS-TECH 300 VA FOR XT 
UPS-TECH 500 VA FOR AT 
UPS-TECH 1 KVA ON-LINE 



$399.00 

$499.00 

$1,499.00 



WE CARRY MANY BRANDS IN STOCK INCLUDING EMER- 
SON, MINUTEMAN, DELTEC. 



SEAGATE DRIVE SPECIALS: 

ST 225 20MB W/C0NTR0LLER & CABLE 
ST 238 30MB W/C0NTR0LLER & CABLE 
ST 4038 30MB FULL HEIGHT FOR AT 
ST 251 40MB HALF HEIGHT FOR AT 

FACSIMILE MACHINE: 

SHARP MODEL FO-150. BUILT-IN TELEPHONE. 
HALF TONES 

FAX, MODEM & PHONE SURGE PROTECTOR 
SURGE PROTECTOR W/N0ISE FILTER 



$279.00 
$315.00 
$479.00 
$499.00 



$1,195.00 
$19.95 
$24.95 



DEALERS WELCOME 
UPS-DEPOT 1-800-648-2334/(305) 591-2640 
FAX (305) 477-7830 • TLX. 910 250 1011 UPS-DEPOT 
8725 N.W. 18 TERRACE, SUITE 100, MIAMI. FL 33172 
ALL TRADEMARKS ARE REGISTERED WITH THEIR RESPECTIVE 
COMPANIES 



DATA ACQUISITION 
PROCESSOR™ 

• onboard intelligence 

for IBM PC/XT/AT 

• analog and digital I/O to 

150,000 samples/second 

• 80186 coprocessor — 

real time processing 

• onboard software, incl. FFT 

• run applications without 

programming 

• direct access to Lotus 1-2-3 

• manual with tutorial and 

sample applications — $20 

• digital I/O from $995 

• analog I/O from $1695 



MlCROSTAR 



Laboratories 



(206) 881-4286 

2863 152 Ave. N.E. 
Redmond, WA 98052 
Telex 510 601 3473 



Circle 250 on Reader Service Card 



Circle 8 on Reader Service Card 



Circle 140 on Reader Service Card 



Mail Order Electronics Worldwide 



^Tnra 



ELECTRONICS 



Mail-Order Electronics 

FOR ORDERS ONLY ALL OTHER INQUIRIES 



Mi.-g.-feha = w^i 



maaaaiua 



I ameco 



IBM COMPATIBLE COMPUTER ACCESSORIES 



Casper 14" EGA and Thomson UltraScan Color Monitors 

The TE5154 EGA Monitor and 4375M Multisync Monitor are ideal for text as well as CAD and other 
graphics applications. Both monitors come with a tilt/swivel base, manual and cable. 

TE51 54 (Specs.): • EGA/CGA compatibility • Input: DB9 (TTL) • Scanning frequencies: 1 5.75KHz to 21 .85 
KHz • Resolution: 720 x 350 (max.) • Bandwidth: 25MHz • Size: 15"W x 14.25T) x 14"H • Weight: 35 lbs. 

TE5154 14" CGA/EGA Monitor $399.95 

JE1055 EGA Card (Used with TE5 154 and 4375M Monitors) $149.95 

4375M (Specs.): • CGA/EGA/PGC/VGA compatibility • Inputs: DB9 (TTL); DB25 (Analog); RCA (Composite) 
• Scanning frequencies: 15.6KHz to 35KHz • Resolution: 800 x 560 (max.) • Bandwidth: 30MHz • Size: 
1 4.25"W x 1 6"D x 1 6"H • Weight: 35 lbs. 

4375M 14" CGA/EGA/PGC/VGA Monitor $579.95 




IBM PC/XT/AT Compatible Monitors 

12" Amber Monochr. Monitor 

• TTL input • Bandwidth: 20MHz • Scan, freq.: 
1 8.432KHz ■ Char, display: 80charactersx 25 
rows • Size: 1 2.5"W x 1 2"D x 1 2"H • Wt.: 1 9 lbs. 
•Compatible with JE1050,JE1055andJE1071 
(see below) • Cable and manual included 

AMBER $109.95 

14" RGB Color Monitor 

• Input signal: RGB • Scanning frequency: 
1 4.5KHz to 1 7.8KHz • Video bandwidth: 1 8MHz 

• Res.: 640 x 200 • 70W • Switch for AMBER/ 
GREEN or COLOR screen -Size: 14.6"W x 
15.5"Dx 1 3.6"H ■ Wt.: 27 lbs. • Compatible with 
JE1052 (see below) • Cable and manual incl. 

TTX1410 $279.95 TTX1410 Pictured 




1 



IBM PC/XT/AT Compatible Keyboards 



,& Mj.niiiriii ? in 




• Tactile touch keyswitches 

• Switch selectable 
between PC/XT or AT 

• Illuminated Caps Lock, 
Num Lock and Scroll Lock 
indicators 

• Manual included 
.—.. *^ w~ JE1 016 Pictured -*--* ~,- 

JE1015 $59.95 

• Enhanced keyboard layout • 12 function keys • Illuminated LED indicators for 
Num Lock, Caps Lock and Scroll Lock • Separate cursor pad • Switch select- 
able between PC/XT or AT • Manual included 

JE1016 $79.95 




Floppy/ 
Hard Disk 
Controller 
for IBM AT 

The JE1 045 is a floppy and hard disk controller on one card. 
The JE1045 can handle up to two hard disks and two high 
density (1.2MB) or normal floppy disk drives (360K). 
Compatible with the ST225 and ST251 . 
Hard Disk: • 5 MBits/sec data transfer rate ■ Up to 1 6 Read/ 
Write heads • Up to 2048 cylinders Floppy Disk: • Ability to 
handle 360K or 1 .2MB capacity drives • Data transfer rates: 
MFM-250,300, 500 KBytes/sec. • 1 yearwarr.* Manual incl. 

JE1045 $159.95 



Monochrome 
Graphics 
Card for 
IBM PC/XT/AT 

Compatible with IBM 
Monochrome and 
Hercules Graphics 
Standards 

The JE1 050 is a monochrome graphics card with parallel 
printer port and features the following: • Text mode: 80 x 25; 
Graphics mode: 720 x 348 • Compact half-card • Parallel 
printer interface with transfer rate up to 1 000 characters 
per second • 1 year warranty • Manual included 

JE1050 $59.95 




Color 
Graphics 
Card for 
IBM PC/XT/AT 

Compatible with IBM 
Color Graphics 
Standard 

IBM RGB or composite monochrome/color monitors • Paral- 
lel printer port • Text modes: 40x25 or 80x25; Graphic 
modes: 320x200 or 640x200 • Light pen interface • 1 year 
warranty • Includes composite video monitor adapter 
■ Manual included 

JE1 052 $49.95 





Enhanced 
Graphics 
Adapter for 
IBM PC/XT/AT 

Compatible with IBM Enhanced Graphics Standard 

The JE1 055 is an IBM EGA/CGA/MDA compatible card 
featuring the following: • Text mode: 80x25; Graphics mode: 
720x348 • Reversed video jacks and feature connectors 

• Light pen interface • 256K Video RAM ■ Dipswitch on back 
of card allows changing of switch settings without opening 
case • Displays 16 out of 64 colors • 1 year warranty 

• Manual included 

JE1055 $149.95 



Multi I/O with Controller 
and [Graphics J or IBM PC/XT 

Compatible 
with IBM 
Monochrome 
and Hercules 
Graphics 
Standards 

The JE1 071 is a multi I/O card with six add-on functions, 
uses only one slot and features the following: RS232C 
serial port (expandable to two) • Game port • Real time 
clock calendar • 5V4" floppy disk drive controller capable of 
handling up to two drives • 1 year warranty • Manual and 
cables included 

JE1071 $119.95 





Input/Output 
Cards for 
IBM PC/XT/AT 

Four functions on one 
card! The JE1060 and 
JE1 065 Input/Output cards f orthe IBM PC/XT/AT feature the 
following: ■ Parallel printer port • RS232C serial communi- 
cation port (expandable to two by user) ■ Game port • Cables 
and manual included • 1-year warranty • JE1060 (Only): 
• Real time clock/calendar with replaceable battery back-up 
and printer spooler software included 

JE1060 I/O Card for XT $59.95 

JE1065 I/O Card for AT $59.95 



NEC V20&V30 CHIPS 

Replace the 8086 or 8088 in your IBM PC and increase its speed by up to 40%! 



Part No. 



Price 



UPD70108-5 (5MHz) V20 Chip (Replaces the 8088) $ 8.75 

UPD70108-8 (8MHz) V20 Chip (Replaces the 8088 or 8088-2) $10.75 

UPD701 08-10 (10MHz) V20 Chip (Replaces the 8088 or 8088-2) $29.95 

UPD701 1 6-8 (8MHz) V30 Chip (Replaces the 8086 or 8086-2) $13.75 

UPD70116-10 (10MHz) V30 Chip (Replaces the 8086 or 8086-2) . . . $29.95 



Part No. 



DYNAMIC RAM CHIPS 



Price 



4164-120 65,536x1 120ns $1.75 

4164-150 65,536x1 150ns $1.25 

41256-120 262,144x1 120ns $3.95 

41256-150 262,144x1 150ns $3.25 




Seagate 20, 30 & 40MB 

Half Height 

Hard Disk Drives 



Description 



Price 



ST225K (Pictured) 



20MB Drive only (PC/XT/AT) . . $269.95 
20MB w/Controller (PC/XT) . . $319.95 
30MB Drive only (PC/XT/AT) . . . $299.95 
(RLL Controller Needed) 
30MB w/Controller (PC/XT/AT) . . $339.95 
40MB Drive only (PC/XT/AT) . . . S469.95 
40MB w/Cont. Card (PC/XT) . . . S549.95 
40MB w/Cont. Card (AT) $589.95 



ST225 

ST225K 

ST238 

ST238K 
ST251 
ST251XT 
ST251AT 



$20.00 Minimum Order 

IBM is a registered trademark of International Business Machines 



U.S. Funds Only 

Shipping: Add 5% plus $1.50 Insurance 

California Residents: 

Add 6%, 6V 2 % or 7% Sales Tax 

FAX 415-592-2503 

11/87 

1355 SHOREWAY ROAD, BELMONT, CA 94002 • FOR ORDERS ONLY 415-592-8097 • ALL OTHER INQUIRIES 415-592-8121 




VISA* 



Prices Subject to Change 

Send $1 .00 Postage for a 
FREE 1988 CATALOG 

Telex: 176043 

©1987 Jameco Electronics 



254 Inside the IBM PCs • BYTE 1987 Extra Edition 



Circle 109 on Reader Service Card 



Worldwide • Since 1974 

• QUALITY COMPONENTS • COMPETITIVE PRICING 

• PROMPT DELIVERY 



Mail Order Electronics 'Worldwide 

ELECTRONICS 



J 



ameco 



IBM COMPATIBLE COMPUTER KITS 



J 



ameco 



Now You Can Build an IBM PC/XT or AT Compatible! 

Jameco's new IBM PC/XT/AT compatible kits include everything you need to assemble a working computer and come with complete step-by-step 
assembly instructions. Plus . . . Free! Quicksoft PC Write Word-Processing Software. 

All computer accessories below may also be purchased individually. 
Please Note: JE1004 and JE1005 shipped in 2 boxes (48 lbs. total) - JE1008 shipped in 1 box (31 lbs.) 



IBM PC/XT Compatible Kit 



Part No. 



Description 



Price 



4164-150 

JE1040 

JE1010 

JE1015 

JE1030 

JE1050 

JE1020 

GREEN 

JE1000 

SAVE $77.15 

JE1004 



128K RAM (18 Chips) $22.50 

Floppy Controller Card $29.95 

Flip-Top Case $34.95 

XT/ AT Style Keyboard $59.95 

150 Watt Power Supply $69.95 

Mono/Graphics Card w/Printer Port .... $59.95 

51ft" DSDD Disk Drive $89.95 

12" Monochrome Green Monitor $99.95 

XT Motherboard (Zero-K RAM - 

Includes Award BIOS ROM) $89.95 

Regular List $557.10 
IBM PC/XT Compatible Kit $479.95 




IBM PC/XT Turbo Compatible Kit 



Part No. 



Description 



Price 



4164-150 

41256-150 

JE1010 

JE1015 

JE1030 

JE1020 

AMBER 

JE1001 

JE1071 
SAVE $70.70 

JE1 005 



128K RAM (18 Chips) \ Tota i $ 22.50 

51 2K RAM (18 Chips)) 640K RAM $ 58.50 

Flip-Top Case $ 34.95 

XT/AT Style Keyboard $ 59.95 

150 Watt Power Supply $ 69.95 

51* " DSDD Disk Drive $ 89.95 

12" Monochrome Amber Monitor .... $109.95 
4.77/8MHz Turbo Motherboard (Zero-K 

RAM - Includes Award BIOS ROM) $104.95 

Multi I/O w/Controller and Graphics . . . $119.95 

Regular List $670.65 
Turbo IBM PC/XT Compatible Kit . . $599.95 





uiiiiii 



Baby IBM AT Compatible Kit a^, 

AT- Mini-Oftfi fi/ft/m/19MH-7 Kit • 



Part No. 



Mini-286 6/8/10/12 MHz Kit 

Description 



TE5154 EGA Monitor . $399. 
JE1055 EGA Card... $149. 
(not incl. - see opposite 



Price 



JE1043 

JE1015 

41256-120 

JE1012 

JE1032 

JE1022 

JE1003 

SAVE $50.85 

JE1008 



1.2M/360K Floppy Controller $ 49.95 

XT/AT Style Keyboard $ 59.95 

512K RAM (18 Chips) $ 71.10 

Baby AT Flip-Top Case $ 69.95 

200 Watt Power Supply $ 89.95 

51ft" High Density Disk Drive $109.95 

Baby AT Motherboard (Zero-K RAM- 
Includes Award BIOS ROM) $399.95 

Regular List $850.80 
IBM AT Compatible Kit . . . $799.95 




Circle 109 o n Reader Service Card 



BYTE 1987 Extra Edition • Inside the IBM PCs 255 




COMP-CASE High quality haitf case designed to hold 
your IBM for short trips, i.e. office to home, school 
to home, audits, equipment demos, etc. Features lift 
off lid, keylocks, padded handle, attache case looks. 

IB501 Holds PC or XT and Kbd. reg. ^29" now $99 
IB502 Holds Mono Monitor reg. 5-99* now $75 

IB503 Holds Color Monitor reg. &*& now $90 

also available: 

TRAV-L-CASE Heavy duty transport case designed 
for airline travel. Features steel corners, aluminum 
edges, double locks, lined with foam. 

T5010 Holds PC, XT, or AT and Kbd. $269 

Computer Case Co. 

3947 Danford Sq. Columbus, OH 43220 
1-800-848-7548 (Ohio 614-876-1784) 



Get the whole 
story on graphics 

terminal emulation. 




To find out more about software 
that lets your PC emulate 
TEKTRONIX™ 4105/6/7/9 and 
DEC VT100™ terminals, 
call or write: 

(| GRAFPOIHT 

4340 Stevens Creeks Blvd., Suite280, 
San Jose, CA 95129 (408) 249-7951 



Advertise your 

computer products 

through 

BYTE BITS 

(2" x 3" ads) 

For more information 

call Dan Harper at 

603-924-6830 

BYTE 

One Phoenix Mill Lane 

Peterborough, NH 03458 



Circle 53 on Reader Service Card 



Circle 92 on Reader Service Card 



Circle 266 on Reader Service Card 




• Sturdy Blank 

PVC Jacket 

• With ID Label 

• With Write Protect Tabs 

• With Envelopes 

• In Factory Sealed Poly 
Packs 

SOLD IN LOTS 
OF 100 



3V 2 " DISKETTES (UNBRANDED) 
SALE 99$ 



each 



SOLD IN LOTS 
OF 50 



S & H: $4.00. FIRST 100 OR FEWER DISKS; 
S3.00. EACH SUCCEEDING 100 OR FEWER DISKETTES. 



MINIMUM ORDER: $2500. S&H: Continental USA. Foreign 
Orders, APO/FPO, please call. Ml residents add 4% tax. COD. 
add $4.00; payment with cash, certified check or money order. 
Prices subject to change. Hours: 8:30 AM— 7:00 PM ET. 



Call for FREE CATALOG 



t 



J 



cod usy 

Precision Data Products* 

P.O Box 8367. Grand Rapids. Ml 49518 
(616)452-3457 • FAX: (616) 452-4914 
Michigan 1-800-632-2468 
Outside Michigan 1-800-258-0028 



PC + MIDI 
= MUSIC 



It's a simple equation. To plug your PC or PC- 
compatible into the modern world of music- 
making, use the complete line of MIDI soft ware 
and hardware from VOYETRA TECHNOLOGIES. 

□ SEQUENCER PLUS: 65-track total MIDI 
recorder/editor. 

a CONVERSION PLUS: file converter for music 
notation programs. 

□ PATCH MASTER: network organizer and 
sound librarian. 

□ OP-4001: PC/MIDI interface card. 

"Iveneverseen a more powerful, easy-to-use 
music and recording system . . bug-free" 

(PC COMPANION) 

For more information contact VOYETRA 
TECHNOLOGIES, Dept. PC. 426 Mt. Pleasant 
Avenue. Mamaroneck NY 10543, or call 
(914) 698-3377. 



PCDIADAC $375 

Take Control With Your IBM PC/Clone 
16 Channel, 12 Bit Analog Input 
Up to 4 Channel Analog Output 
Digital I/O —24 LINES_ 




Control Mode $250 



New Software Packaga Pastures: Data Base Modifications • Analog 
Device Display • Contact Input Device Display • Contact Output Device 
Display • Contact Output Control • Future Software Enhancements: 
Sequential Control Package will allow Die user to build complex control 
sequences for home security, energy management and many other 
appl (cations • Archive Data Storage • Report Generation • bg of device 
valued over several selectable time Intervals using archival data • 
Trending - A plot of device value versus a selectable time Interval. 



UnkelScope Level 1 $349 

UnkelScope™ - latest advance In data acquisition, 
process and experiment control - complete Soft- 
ware Tool for the Lab. Developed at MIFs DepL or 
Mach. Eng.Transforms PC Into one of the most 
powerful lab Instruments, yet the price Is minimal. 



A Data 

Acquisition 
Package 



C c '-"■' \ Dulertfflepresaftilivct Plww Cal 

MICROTEC Hi P.O. Box 103. • lwahorM,PA1»M7 



Circle 183 on Reader Service Card 



Circle 241 on Reader Service Card 



Circle 66 on Reader Service Card 




PAL/EPROM PROGRAMMER CARD 

For PC/XT/AT Systems 

NEW - VERSION 2 OF SOFTWARE AND HARDWARE 

-Programs 20 and 24 

Pin MMI, NS, Tl, AMD, 

ALTERA. CYPRESS, 

RICOH, and PANATEC 

PALS. Supports EPLD. 

polarity. HA, and shared 

product term types. 
•Functions Include: Read, 

Write, Verily, Protect, 

Edit, Print, and File load 

and save of program. 
•JEDEC supported. 
-Sotlware Included 

100MHZ LOGIC ANALYZER CARD 

For PC/XT/AT Systems 

"™ -24 Channels at 25Khz-25Mhz 
■6 Channels al 100 Mhz 
■Internal Clock up to 100 Mhz 
•External Clock up to 25 Mhz 
■Threshold Voltage TTL. ECL. 
or variable from -10 to +10v 
■Can Stack Multiple Boards 
All Soltware Included 

CALL NOW FOR ORDERS AND 
TECHNICAL INFO (201) 994-6669 

Link Computer Graphics, Inc. 4 Sparrow Dr., 

Livingston. NJ 07039. TLX: 9102409305 LINK COMPUTER 





Find out how our whole family of 

EMU-TEK graphics terminal emulation 

software makes good sense for the work you do. 

Call today for more information. 



FTC 



DATA 
SYSTEMS 



(714) 995-3900 

(800) 962-3900 (800) 972-3900 (Calif.) 

10801 Dale St., Suite M-2 

Stanton, CA 90680 



m 



itafiHSS 




m, ROSE DATA SWITCHES 

X* ELECTRONICS cuAnc 

SHARE computers, printers, 
any parallel or serial device 
ELIMINATE cable swapping 
INEXPENSIVE way to network 
COMPATIBLE with 
all computers. 
Businesses, Schools, Homes 



WE ALSO OFFER: 

Data Buffers, Line Drivers. 

Modems. Protocol Converters. 

Parallel - Serial Converters. 
"H£$ |S**V Cables, Computers, Printers, 

^1 -*-"" Disk Drives, and more. 

AUTOMATIC - CARETAKER is ideal for a business or 
school to sharea printer or modem among many computers. 
Operation is fully automatic with no software required. 
Parallel or Serial 4 channels - $295 8 channels - $395 
MANUAL - HARDSWITCH is operated with the flip of a 
switch. 2:2 and 2:4 models allow simultaneous commun- 
ication. 

Serial 1:2 - $59 1:4 - $ 99 2:2 - $109 2:4 • $169 

Parallel 1:2 - $79 1:4 • $139 2:2 - $119 2:4 - $199 
LED and spike protection on serial models add $20. 
CODE ACTIVATED - PORTER connects one computer to 
multiple peripherals. A software code selects the peripheral. 
Parallel or Serial 4 channels - $295 8 channels - $395 
Buffer option 64K - $100 256K - $250 
REMOTE - TELEPATH connects multiple computers to 
multiple peripherals. Aselectorateachcomputerorterminal 
chooses up to 4 peripherals and displays busy status. 
4:4 - $495 4:8 - $795 selector - $39. 
:^^^^^^^= <ftoc <t JEW U pwt rnrnfiufri ~^^^^^^^= 

ROSE ELECTRONICS (713) 933-7673 

P.O. BOX 742571 MC & VISA Accepted 

HOUSTON. TX 77274 Dealer Inquiries Invlled 

CALL US FOR ALL YOUR INTERFACE NEEDS 



Circle 122 on Reader Service Card 



Circle 86 on Reader Service Card 



Circle 196 on Reader Service Card 



n§ - 




'Si 

SB 




liS 




Storage and Retrieval 

of Documents, Catalogs, 

Manuals on CD-ROM 

With Online's Image Compression and 
Expansion Systems, Local Area Network, 
and Laser Printer Output, we provide 
complete digitizing, retrieval software, 
and hardware solutions. 

CALL OR WRITE FOR FURTHER INFORMATION 

ONLINE COMPUTER SYSTEMS, INC. 

Department 0PC-B1 

20251 Century Boulevard 

Germantown, Maryland 20874 

(BOO) 922-9204 or (301) 428-3700 

Telex: 3746439 FAX: (301) 428-2903 

OEM and Dealer Inquiries are Invited 



2400 BAUD INT. MODEM 
W/PC-TALK SW $159 



2400 EXT. MODEM W/SW $179 

1200 INT. MODEM W/SW $74 

1200 EXT. MODEM W/SW $89 

1200 INT. + SERIAL PORT $89 

NEC MULTISPEED $1299 

EPSON 180CPS PRINTER $179 

EPSON FX-286e PRINTER $435 

SEAGATE 20M HD W/CONTL $299 

SEAGATE 30M HD W/CONTL $309 

286 SPEEDCARD FOR XT $279 

MOUSE W/PAINT SW $49 

MOUSE W/DR. HALO II $60 

CLOCK CARD FOR XT $24 

CLOCK/SERIAL CD FOR XT $41 

S/P (2ND S OPT.) FOR AT $46 

OCEAN INTERFACE CO. 

P.O. BOX 1666 

MONTEREY PARK, CA 91754 

(818) 282-0498 



Brand Name DISKETTES 



29* 49* 79* 

5'/V DSOO Mm. 100 Color 5y/ DSDD Mia 50 5W IBM-AT HD Mm. 50 

39C Mtn.SO 
2 for 1 Replacement Guarantee if found initially defective within six months 
With sleeves, tabs, labels FofTWEC sleeves, add2c 

QQ0$4O9 $429 

3Vfe" SSrDD 
Min. 25 

Subject to avaiiabi i ty 

$C99 



V/2" DSDD 
Min. 25 

Subject to availability 



Box of 10 
5'/4"0S0D 
Mn 10 boxes 



Of\ Mia 5 

* V 600' 120 M8 

Data Cartridge 



Box of 10 
Color SVV'DSDD 

f An 5 boxes 
Free Rastc Case 



I ^9 tA^H 

$4 IS 90 205 40 MB 

I^J each Mini Cartridge 



3MDEICompatibe 

Immediate shipping - Guaranteed satisfaction 1 00% Lifetime Warranty 

Call for greater discounts on larger orders MGVISA accepted 

Shipping: S3 50 per mm order $1 50 each addtl. lot 

1-800-537-1600 operator no. 227 

MICRO ELECTRONIC PRODUCTS 



Circle 156 on Reader Service Card 



Circle 153 on Reader Service Card 



Circle 254 on Reader Service Card 



ic 



PROMPT DELIVERY!!! 

C SAME DAY SHIPPING (USUALLY) 

** QUANTITY ONE PRICES SHOWN for SEPT. 20. 1987 



DYNAMIC RAM 

1Mbit ioookxi 100 ns $27.50 1 

1Mbit 256Kx4 120 ns 32.00 1 

51258 *256Kxi 100 ns 6.50 1 

4464 64Kx4 150 ns 3.60 

41256 256Kxi 80 ns 5.50 

41256 256Kxi 100 ns 4.85 

41256 256Kx1 120 ns 3.95 

41256 256Kxi 150 ns 3.50 

41264 2-PORT 120 ns 5.25 

EPROM 

27C512 64Kx8 200 ns $15.50 1 

27C256 32Kx8 250 ns 6.75 

27256 32Kx8 250 ns 5.60 

27128 16Kx8 250 ns 5.35 

STATIC RAM 

43256L-12 32Kx8 1 20 ns $1 1 .75 

5565PL-15 8Kx8 150 ns 3.25 J 



OPEN 6Va DAYS, 7:30 am-10 pm: SHIP VIA FED-EX ON SAT. 



SUNDAYS & HOLIDAYS; SHIPMENT OR DELIVERY, VIA U.S. EXPRESS MAIL 



SAT DELIVERY 
INCLUDED ON 
FED-EX ORDERS 
RECEIVED BY: 
TfcSWAfr Ml lb 
frM $10.50'Z1trt 



MasterCard/VISA or UPS CASH COD 

Factory New, Prime Parts juPqo 

MICROPROCESSORS UNLIMITED, INC. 

B 4 E ™s s oK»«r (918)267-4961 

No minimum order. Piease noie'iriat prices are subject to 
criings. Shipping & insurance eilra, & up Ic Si (or packing materials Order* received by 
9 PM CST cm uiuilly be delivered the next morning, via Federal Expreae Standard 
Air (a $4,00, or guaranteed next day Priority One (« S 10. SOI All parts guaranteed. 




Precision quartz movement. Genuine 5Va" 
floppy diskette face. Clear floppy diskette 
storage case— opens for desktop display (lid 
becomes accessory tray), and closes for wall 
mount. 1-year warranty. Grid styles available in 
BLUE, GRAY, or BLACK. 

Send: Cash/Check/MO to BEARE ENTERPRISE 
1480 Ri: 46 SUrTE 53-B / PARSIPBWY, NJ 07054 
(201) 334-7491 / NJ Res. add 6% sales tax. 

Accessories & 'AA' bat. not incl. 



JKL's OCTOBER BARGAINS 

JKL AT: 80386 (16 MHz) 

w/case 200W, P.S., Keyboard $2195.00 

JKL AT 40: Above plus 40 Meg. HD, 
1 .2 Floppy, Graphics Card, 

& Monitor $3295.00 

JKL AT BO: Above plus 80 Meg. HD, 

1.2 Floppy, EGA Card & Monitor .... $4495.00 

Cases: AT ... . $74.10 XT ... . $35.10 
Power Supply: AT 200W $85.80 XT 1 50W $58.50 

Cards: 

Monochrome Graphics Card w/Printer Port . $50.70 
AT Hard Disk and Floppy Controller Card , . $161.20 
Hard Disks: AT 40 Meg, 40MS Hard Disk , . . $492.70 

XT 30 Meg Hard Disk w/Comroller $349.70 



d 



Jack Krochmal, Ltd. 

Computers, Peripherals 

& Supplies 
717 Ellsworth Drive 
Silver Spring, MD 20910 
(301)565-2910/587-3232 

Toll Free: 
1-800-JK3-0386 



Circle 137 on Reader Service Card 



Circle 32 on Reader Service Card 



Circle 111 on Reader Service Card 




PC220 turns your PC' Into a VT220 terminal! 




Join thousands who have discovered GMS's 5 year 
record of quality emulation software and support. 

General Micro Systems 

PO Box 5330 

Minneapolis MN 55343-1553 USA 

(612) 937-1442 

Send $1 for Demo Disk. 
Call for Free Information Package. 

* Also runs on XT.AT.Series II and compatibles. 



2400 baud 



$160 



300 1200 2400 MODEM 



XT/ AT, Apple, Atari, Commodore & . 

'Fully Hayes compatible 
*Auto dial, auto answer, 

w 8 LED, speaker, 

Aluminum case 




(SAME AS ABOVE) , 

EEBMEfl] $99 



$69 



|300 1200 for XT AT 
INTERNAL MODEM 



'Add 7% shipping. 10 days money back 
guarantee (less $15 ea for restocking & 
shipping charge) 



FOSTER TECHNOLOGY: 

*#4, 222 H St, Blaine, WA 98230 

Phone: (206) 332-5081 
'Phone: (604) 684-2368 CANADA 

(Add 16% for Canadian Orders) 



NEW 
IMPROVED 



EPROM PROGRAMMER 



*> 



STILL JUST 



$349 



• Now supports over 250 specific EPROM's and 
EEPROM'S from AMD. Intel, SEEQ, Tl, Fujitsu, 
Hitachi, Toshiba, and 21 others. 

• Programs 87C51, 8749, 8741A, 8742 and other 
microcontrollers with optional heads 

• Splits 16- and 32-bit files 

• 30 day money back guarantee. 

• Free PCDOS software runs up to 38.400 baud 

• Gold Textool 2IF socket 

• Same day shipment 

CALL TODAY FOR MORE INFORMATION 

irun_r"L_nj 

MICROSYSTEMS 
10681 Haddington, #190 / Houston, TX 77043 
(713)461-9430 (800)225-2102 
Telex: 1561477 



jDIk 



Circle 88 on Reader Service Card 



Circle 85 on Reader Service Card 



Circle 41 on Reader Service Card 



JADE COMPUTER 



jtittfc 



f ■WJMlBI **' 
5J2JTfARS ffi- 

~ SATISFACTION * 
GUARANTEED! 




8 MHz Turbo-XT 



• 640K of RAM 

• 4.77 or 8 MHz 

• 150 Watt Power Supply 

• Deluxe Keyboard 

• 360K Disk Drive 

• 8 Expansion Slots 



*398 



• 8087 Socket 

• One Year Warranty 



OPTION A 

High Resolution Amber Flat Screer 
High Resolution Graphics Card 
Parallel Printer Port 

ADD $ 148 



OPTION B 

• Hi-Res RGB Cotor Monitor 

• High Resolution Graphics Card 

• Parallel Printer Port 

ADD $298 



OPTION C 

» 21.3 Megabyte Hard Disk Drive 
» Dual Hard Disk Controller Card 



ADD $298 



Satisfaction Guaranteed or Your Money Back 



Option A 

» 1.2 MB Drive 

* Hard/Floppy Controller 

* 30/40 MB Hard Disk 

» Hi-Res Amber Monitor 
» Monochrome Graphics Card 
» Parallel Printer Port 
30 MB add 40 MB add 

s 790 s 930 



Option B 

• 1.2 MB Drive 

• Hard/Floppy Controller 

• 30/40 MB Hard Disk 

• Hi-Res Color Monitor 

• Color Graphics Card 

• Parallel Printer Port 

30 MB add 40 MB add 

s 990 s 1140 



• 1.2 MB Drive 

Ontinn P * o^ /F J. o P P, y Controller 30 MB add 40 MB add 
UpilOn U • 30/40 MB Hard Disk «..*-» c-«« 

• EGA Card s 1250 s 1400 

• EGA Monitor 



10 MHz Turbo-AT 



$788 



• 6 or 10 MHz 80286 

• 640K (Expands to 1 MB) 

• 80287 Socket 

• 200 Watt Power Supply 

• Enhanced Keyboard 

• Real Time Clock/Calendar 

• One Year Warranty 




EPSOM 
PRINTER 

$148 




LX-800, FX-86e, FX-286e, LQ-800, LQ-1000 
LQ-850, LQ-1050, EX-800, EX-1000, LQ-2500, GQ-3500 
Call for Our Best Price 



PANASONIC 

1080i Model II s 178 

1 091 i s 198 

1 092 s 328 

1592 s 428 

1595 $ 458 

1524 J 588 

•CITIZEN" 

120D $ 168 

MSP-10 $ 268 

MSP-15 $ 328 

MSP-20 . $ 298 

MSP-25 s 398 

MSP-50 s 368 

MSP-55 s 468 



TOSHIBA 

321 SL s 498 

341 SL $ 698 

P351 II J 958 

P351C II J 1088 

NEC 

P660 s 458 

P760 $ 648 

P560XL s 888 

P565XL $ 968 

P960XL M088 

LC-860 J 2168 

LC-890 $ 3528 



10 MB Full Ht Kit 



HARD DISK *-■#*#* 
DRIVE * *§*§ 

Hard Disk, 
Controller (PC) 20 MB '/ 2 Ht Kit 30 MB % Ht. Kit 
and Cables %21& $ 328 

30 MB for AT.. ..$499 40 MB for AT.. ..$559 




21 Megabyte Card 

21 MB Card 40 MB Card 

$3580^ $498 



. 21.3 MB Formatted . Head parR ZQne . Plated Media 

• Lowpower • Light 2.4 Lbs. 



Built By Alpine Electronics to IBM Specifications, same 
as Qume 142 



360K DISK DRIVE 

jilt By Alpine Electronic 
as Q 

• 360K 

• 48 TPI • Double density 

• Double-sided # Half Height 




3%" DISK DRIVE 

FOR YOUR PC/XT/AT 

720K Disk Drive for Mass Storage or for 
Down Loading to your Lap-Top or 
New IBM PS/2. Requires DOS 3.20 



$128 




360K 
DISK DRIVE 

Tandon TM100-2 Full Ht. Replacement 
Drive for Your IBM PC or XT 




$78 



DELUXE 

KEYBOARD 

DRAWER 

Bail-Bearing Slides with 
Ergonomic Palm Rest 

$48 



258 Inside the IBM PCs 



DISK DRIVE FOR YOUR APPLE 



AS 

LOW 

AS 



$119 




20 MB Hard Disk 

lie V 2 Hard Disk Drive . 
He V 2 High Disk Drive . 

He, 11+ Disk Drive 

Grappler Printer Card . 
11+ 16K RAM card 



1 MB RAM Card w/OK 

II+, Me Printer Card & Cable . 
Serial Board 



_ s 799 
_ s 119 
_ J 119 
_ s 129 
_ s 89 
_ $ 39 
_ $ 129 
_ s 49 
_ s 69 



MicroSpccd 

Fast 88 
7 MHz Turbo 
Board For Your Turbo ! 

$99 



Circle 108 on Reader Service Card 



1200 BAUD 

MODEM 
$5995 |K 

Including Free Bitcom Software 

• Guaranteed Hayes Compatible • V2 Slot Card 
• 300/1200 Baud • On-Board Speaker 
• Auto Answer/Dial • FCC Approved 
Touch Tone/Pulse • 2 Year Warranty 



External 1200 Baud s 119 

External 2400 Baud $ 229 

Hayes 1200B Internal Card 

w/o Software $ 329 

Hayes 1200B Internal Card 

w/Smartcom II s 359 



Internal 2400 Baud Card 
with Software $ 199 

Hayes Smartmodem 1200 J 389 

Hayes 2400B Internal Card 
w/Smartcom II $ 549 

Hayes Smartmodem 2400 s 589 



200 CPS 



.IL 




Aiicrenici'iflc 



$19995 



List Price $ 649 



• 200 CPS Bi-directional 

• 17x9 Near Letter Quality 
» Logic Seeking 

» IBM Graphics 

» Parallel & Serial 

» 16K Buffer 

» Adjustable Pusher Tractor 




STAR RADIX LV2010 



• Short Form Tear Off 

• Down-loadable Characters 

• Auto Sheet Insertion 

• Reverse Paper Feed 

• Ultra Hi-Res Bit Mapped Graphics 

• One Year Factory Warranty 

• Limited Quantity 



MICROSOFT 

MS-DOS 3.21 

Including 

GW-BASIC 

Supports 3'/2" Drive 

*88 



Samsung Hi-Res 

MONOCHROME 
FLAT SCREEN 

Amber or Green Monitor 
with Free Tilt-N-Swivel Base 

$98 



ra 



HEWLETT 
PACKARD 



LaserJet II 



$1748 

List Price s 2495 

• New Improved Model 

• 512K RAM up to 4 MB 




* 8 Page Per Minute 

• 300 DPI Graphics 



HI-RES RGB MONITOR 



tf3/\ M /\Cxlm./\fjtl MONITOR 



*259 

LIST PRICE s 699 



► Samsung 14" Monitor 
» 640 x 240 Non-glare Tube 




$499 



Hi-res EGA video card. ., s 1 49 
Hi-res EGA monitor.. . s 369 



• 16 Color .41 mm Dot Pitch 

• Free Tilt & Swivel Base 



LIST PRICE s 998 

• Samsung Dual Mode Monitor • EGA. CGA. MDA & HGA 

• Non-glare .31 mm Dot Pitch • 100% IBM Compatible 

• 640 x 350, 640 x 200 • 256K of Video RAM 



NEC 

MULTISYNC 

$529 

13" Color Monitor 



NEC 

MULTISPEED 

$1398 




DAISYWHEEL PRINTER 

*nw LETTER QUALITY 



ited 



QVJ 



Lap-Top Computer 



• 26 cps, Intelligently Bi-directional 

• Diablo 630 Compatibility 

• Proportional Spacing Plus 10, 12, 15 Pitch 

• Built-in 2K Buffer Expands to 6K 

• Uses Standard Ribbon and Wheel 



$198 

LIST PRICE s 499 



MOUSE 

With Pop-up Menus 




Software Options 

Dr. Halo Desktop Publishing 

$18 Gra P hics $64 



40 MB TAPE 
BACK-UP 

$378 

LIST PRICE >795 



No-Slot Clock 

For Your PC-XT (Clone) or Appie 




• Uses No Slots 

• 20 Year Battery 

• Includes Software 
Plug-in Clock Board for PC s 49 



INTEL 

Math Co-Processor 



8087-3 (5 MHz) 

8087-2 (8 MHz) 

8087-1 (10 MHz) 

80287-6 (6 MHz) _ 
80287-8 (8 MHz) __ 
80287-10 (10 MHz). 
80387 . . 



_ s 109 
_ s 159 
_ s 205 
^. s 185 
_ 5 255 
_ s 305 
_ s 588 



JADE COMPUTER 



Continental U.S.A. (800)421-5500 
Inside California (800)262-1710 
Los Angeles (213) 973-7707 
TeleFax (213) 675-2522 



4901 W. Rosecrans Ave. Box 5046 
Hawthorne, CA 90251-5046 



Prices at our seven store locations will be 

higher. 

We accept cash, checks, credit cards or 

purchase orders from qualified firms and 

institutions. Minimum prepaid order$15.00. 



Ca. & Tx. residents add sales tax. Prices & 
availability subject to change without notice. 

Shipping & handling charges via UPS 
Ground 50C/lb. UPS Air $1.007 lb. Minimum 
charge $3.00. 



B Y T E 1987 Extra Edition * Inside the IBM PCs 259 



RS-422 

High Speed 
Communications Board 




■ For IBM-PC/XT/AT ' 

■ Dual RS-422/RS-485 Interface 

■ 300 to 614,400 Baud 

■ Optional Bus Analyzer 

1-800-782-2321 

Adrienne Electronics Corporation 
11994 MARJON DR. NEVADA CITY, CA 95959 



PROFESSIONAL 
CIRCUIT LAYOUT 

> with CYA 



Panel size to to 32" 
Up to 16 Layers 
Unlimited Complexity 
1 mil (.001") database 
Revision Control 

OUTPUT TO: 
Photoplotters 
Penplotters 
Drilling Machines 



/ 



gav 



IMPORT FROM: 
Gerber (RS-274) 
AutoCAD (opt.) 

Requires EGA or 
compatibile. 

$286.00 
202 G Street Suite 2 
Antioch, CA 94509 
(415) 754-3879 



EPROM/PAL Programmer 



• PAL MODULE S295 

• Programs 20 & 24 pin MMI 
(A,B), NS Tl PALS 

• Read JEDEC file format 

• Security. DR LOAD, SAVE, 
EDIT, READ, WRITE, VERIFY, 

• User friendly menu driven S/W. 



* EPROM MODULE (1, 4, 8 socket) 
-16K to 1024K EPROM, CMOS EEPROM. 
-Read Intel, Motorola, TEK HEX file 

-Very fast (Quick pulse), reliable, easy to use 

* BIPOLAR ROM MODULE 
-MMI, NS, Tl & Signetics parts 
-Read Intel, Motorola, TEK HEX file 

* 8741/42/48/49/50 Module 

-1, 4, 8 socket module available 
-8748 Disassembler included 
-Read Intel, Motorola, TEK HEX file 

* 8751/52/252/44 Module 

-Normal, Intelligent programming algorithm 
-Read Intel, Motorola, TEK HEX file 

* TTL & MEMORY IC TESTER MODULE 
-Test almost TTL, CMOS, Dynamic, Static IC's 
-Auto search for unknown IC part No. 

-User can make his own test pattern 

* INTERFACE CARD & CABLE 

-This card is common to all above modules 
-Fits in any PC/XT/AT or compatibles 
-Space saving half size. 



S145 



S295 



473 Sapena Ct., #24 
Santa Clara, CA 95054 
(408) 727-6995 



XELTEK 



CA residents 
add 6.5% tax. 
Add $5 for S/H 



Circle 5 on Reader Service Card 



Circle 87 on Reader Service Card 



Circle 248 on Reader Service Card 



Oswego v 
Software, Inc. 



[fllj breakthrough ! 

We've taught 
the IBM PC 

0^\ • IBM AT. IBM XT 



li^l * Vectra • Zenith 150 
Q I • Compaq, 286 
^ / • Tandy 1000. 3000 
Q * Tex. lnstr. Business Pro 

to read and 
write HP files! 

• BDAT • ASCII • Series 80 

$495 



Call us, 312/554-3567, 



Oswego Software, Inc. 

507 North Adams St. 
Oswego. IL 60543 



Circle 163 on Reader Service Card 



DATA ACQUISITION 



UnkeBcope 



LEVEL 2+ ($549) 

I High-speed data acquisition plus. 

JUNIOR ($125) 

Fast and easy data acquisition, 



(617)861-0181 



Unkel Software! 



aP75e^T]etKXp,v^opcrT"U(|)XvJio 

FOREIGN LANGUAGES 

ON THE IBM PC & PS/2 
Use Arabic, Cyrillic, Farsi, French, 
German, Greek, Hebrew, Italian, 
Spanish, Turkish, Vietnamese, Scientific 
Notations, etc.. in popular software: 
WordPerfect, Wordstar, Volkswriter, 
PC- Write, Dbase, Spreadsheet, Basic, 
Prolog, Desktop Publishing. Dot matrix 
and laser printers option. 
EGA VGA $75 CGA MD A $95 ea.lang. 
Arabic, Hebrew, Farsi $ 195 

VNLabs 

4320 Campus Dr., Suite 1 14 

Newport Beach, CA 92660 

(714) 474-6968 



Circle 240 on Reader Service Card 




A Ventilation System designed to pro- 
long the life of IBM® PC PC/XT. Coldblue' M 
fits in the IBM enclosure reducing operating 
temperatures as much as 27°F by increas- 
ing airflow across the card area. 
The one that really works! $185. 
Mandrill Corp. PO Box 33848, San Antonio, 
TX 78265 800-531-5314 
Dealers inquiries welcome. 



<$> 



5E4LEVEL 



PROUDLY 
PRESENTS 



• Dual SIO Serial Interface/ 

Two independent 8250/16450 
ports, COM1-N, versatile, RTS 
and CIS. RS-232/ 422/485/ 
449 compatible. 

• ACB-il Advanced Communi- 
cations Board. SYNG/ASYNC 
to 880K, DMA, 82530 SCO, 
RTS, CTS, RXC, TXC signals, 

RS-232/ 422/ 485/ 449 
compatible. 



SEALEVEL SYSTEMS INC. 

POBOX 1808 
EASLEY, SC 29641 USA 

£803)855-1581 



Circle 201 on Reader Service Card 



Hercules Graphics 

with 

QuickBASIC and TurboBASIC 
"H-Graphics" 

Hercules Graphics Programmer's Toolkit 
for IBM PC and compatibles 

Full Hercules Graphics support for; 

BASICA GWBASIC QuickBASIC TurboBASIC 
PASCAL C CLIPPER 
and other languages 
Many functions for: 

switching modes 

windows 

drawing 

text 

screen dumps etc. etc. 

Fast, powerful and very easy to use. ^^_ 

only $80 inc. air freight |||g 
"Easy Graphics" PC User (UK) 3/87 - re-print available 
full details from: 

Laboratory Software Ltd. 

2 Ivy Lane, Broughton, Aylesbury, 
Bucks. HP22 SAP England. (0)296 431234 



Circle 232 on Reader Service Card 



Circle 126 on Reader Service Card 



Circle 118 on Reader Service Card 



WIN YOUR 
STATE LOTTO 

WITH YOUR COMPUTER! 

"The home computer is the most powerful tool 
ever held by man" (or woman for that matter)! 
Are you still wasting money with random 
guesswork? This amazing program will ana- 
lyze the past winning lotto numbers and pro- 
duce a powerful probability study on easy to 
read charts in just seconds. With single key 
presses from a menu you'll see trends, pat- 
terns, odd/even, sum totals, number frequen- 
cy and more on either your screen or printer. 
Includes automatic number wheeling, instant 
updating and a built-in tutorial to get you 
started fast and easy! 

CHECKS & CHARGE CARDS ACCEPTED 

WITH NO SURCHARGE. 

All orders shipped same day (except personal checks) 

APPLE & IBM Compatibles $24.95 

Macintosh (requires M/S Basic) $29.95 

Commodore. Atari & Radio Shack $21 . 95 

Back-Up Copies - $3.00 
Please add $2.00 for shipping and handling. 
Phone credit given with orders. 
(513) 2 33-2200 SOFT-BYTE 

M,„ - ? - ■ , : I P - ' Bt » 556 - ForBSt A* 
Dayton, Ohio 45405 




7.50 



DATA SWITCHBOXES 

DB25 SERIAL/PARALLEL 

2 Position 25.90 

3 Position 31.90 

4 Position 37.90 

2x2 Matrix 39.90 

CENTRONICS 

2 Position 27.90 

3 Position 33.90 

4 Position 39.90 

2x2 Matrix 41,90 

CABLES * Molded w/thumbscrews 

Parallel Printer Cable 

DB25 Serial Modem/Extender Cable 

M-M, M-F 6.50 

Centronics Cable M-M 7.50 

Custom lengths and configurations available 

MODEMS Internal External 

Mitsuba Super Modem 1200 89.50 139.50 

Mitsuba Super Modem 2400 199.50 229.50 

HARD DRIVES * Includes one-year warranty 

20 MB Seagate ST-225 w/controller 299.00 

30 MB Seagate ST-238 w/controller 359.00 

40 MB Miniscribe 3650 w/controller 465.00 

Expansion cards, print buffers and 

many other accessories also available. 

DARE SYSTEMS INTERNATIONAL 

1840 North State St., Provo, UT 84604 

(801) 377-5591 

M/C, VISA, COD Terms accepted upon approval 

Call or write fa our FREE catalog 

(Dealer/Quantity prices available) 



The PC VISOR is here!! 




Cut glare,